Skip to content

Commit 795303d

Browse files
committed
Replace depends-on post processor configurations
Replace `AbstractDependsOnBeanFactoryPostProcessor` `@Configuration` classes with simple `@Import` component classes. Closes gh-18382
1 parent fcbd440 commit 795303d

File tree

9 files changed

+114
-102
lines changed

9 files changed

+114
-102
lines changed

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/cache/CacheAutoConfiguration.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
2424
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2525
import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration.CacheConfigurationImportSelector;
26+
import org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration.CacheManagerEntityManagerFactoryDependsOnPostProcessor;
2627
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2728
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2829
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
@@ -62,7 +63,7 @@
6263
@EnableConfigurationProperties(CacheProperties.class)
6364
@AutoConfigureAfter({ CouchbaseAutoConfiguration.class, HazelcastAutoConfiguration.class,
6465
HibernateJpaAutoConfiguration.class, RedisAutoConfiguration.class })
65-
@Import(CacheConfigurationImportSelector.class)
66+
@Import({ CacheConfigurationImportSelector.class, CacheManagerEntityManagerFactoryDependsOnPostProcessor.class })
6667
public class CacheAutoConfiguration {
6768

6869
@Bean
@@ -77,12 +78,12 @@ public CacheManagerValidator cacheAutoConfigurationValidator(CacheProperties cac
7778
return new CacheManagerValidator(cacheProperties, cacheManager);
7879
}
7980

80-
@Configuration(proxyBeanMethods = false)
8181
@ConditionalOnClass(LocalContainerEntityManagerFactoryBean.class)
8282
@ConditionalOnBean(AbstractEntityManagerFactoryBean.class)
83-
protected static class CacheManagerJpaDependencyConfiguration extends EntityManagerFactoryDependsOnPostProcessor {
83+
static class CacheManagerEntityManagerFactoryDependsOnPostProcessor
84+
extends EntityManagerFactoryDependsOnPostProcessor {
8485

85-
public CacheManagerJpaDependencyConfiguration() {
86+
CacheManagerEntityManagerFactoryDependsOnPostProcessor() {
8687
super("cacheManager");
8788
}
8889

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java

Lines changed: 54 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@
4343
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
4444
import org.springframework.boot.autoconfigure.data.jpa.EntityManagerFactoryDependsOnPostProcessor;
4545
import 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;
4649
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
4750
import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
4851
import org.springframework.boot.autoconfigure.jdbc.JdbcOperationsDependsOnPostProcessor;
@@ -56,6 +59,7 @@
5659
import org.springframework.context.annotation.Bean;
5760
import org.springframework.context.annotation.Conditional;
5861
import org.springframework.context.annotation.Configuration;
62+
import org.springframework.context.annotation.Import;
5963
import org.springframework.core.convert.TypeDescriptor;
6064
import org.springframework.core.convert.converter.GenericConverter;
6165
import org.springframework.core.io.ResourceLoader;
@@ -90,6 +94,8 @@
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 })
9399
public 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

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/hazelcast/HazelcastJpaDependencyAutoConfiguration.java

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,11 @@
2525
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2626
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2727
import org.springframework.boot.autoconfigure.data.jpa.EntityManagerFactoryDependsOnPostProcessor;
28+
import org.springframework.boot.autoconfigure.hazelcast.HazelcastJpaDependencyAutoConfiguration.HazelcastInstanceEntityManagerFactoryDependsOnPostProcessor;
2829
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
29-
import org.springframework.context.annotation.Bean;
3030
import org.springframework.context.annotation.Conditional;
3131
import org.springframework.context.annotation.Configuration;
32+
import org.springframework.context.annotation.Import;
3233
import org.springframework.orm.jpa.AbstractEntityManagerFactoryBean;
3334
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
3435

@@ -42,18 +43,14 @@
4243
@Configuration(proxyBeanMethods = false)
4344
@ConditionalOnClass({ HazelcastInstance.class, LocalContainerEntityManagerFactoryBean.class })
4445
@AutoConfigureAfter({ HazelcastAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
46+
@Import(HazelcastInstanceEntityManagerFactoryDependsOnPostProcessor.class)
4547
public class HazelcastJpaDependencyAutoConfiguration {
4648

47-
@Bean
4849
@Conditional(OnHazelcastAndJpaCondition.class)
49-
public static HazelcastInstanceJpaDependencyPostProcessor hazelcastInstanceJpaDependencyPostProcessor() {
50-
return new HazelcastInstanceJpaDependencyPostProcessor();
51-
}
52-
53-
private static class HazelcastInstanceJpaDependencyPostProcessor
50+
static class HazelcastInstanceEntityManagerFactoryDependsOnPostProcessor
5451
extends EntityManagerFactoryDependsOnPostProcessor {
5552

56-
HazelcastInstanceJpaDependencyPostProcessor() {
53+
HazelcastInstanceEntityManagerFactoryDependsOnPostProcessor() {
5754
super("hazelcastInstance");
5855
}
5956

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/liquibase/LiquibaseAutoConfiguration.java

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
import org.springframework.boot.autoconfigure.jdbc.JdbcOperationsDependsOnPostProcessor;
3939
import org.springframework.boot.autoconfigure.jdbc.NamedParameterJdbcOperationsDependsOnPostProcessor;
4040
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration.LiquibaseDataSourceCondition;
41+
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration.LiquibaseJdbcOperationsDependsOnPostProcessor;
42+
import org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration.LiquibaseNamedParameterJdbcOperationsDependsOnPostProcessor;
4143
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
4244
import org.springframework.boot.context.properties.EnableConfigurationProperties;
4345
import org.springframework.boot.jdbc.DataSourceBuilder;
@@ -68,6 +70,8 @@
6870
@ConditionalOnProperty(prefix = "spring.liquibase", name = "enabled", matchIfMissing = true)
6971
@Conditional(LiquibaseDataSourceCondition.class)
7072
@AutoConfigureAfter({ DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
73+
@Import({ LiquibaseJdbcOperationsDependsOnPostProcessor.class,
74+
LiquibaseNamedParameterJdbcOperationsDependsOnPostProcessor.class })
7175
public class LiquibaseAutoConfiguration {
7276

7377
@Bean
@@ -79,7 +83,7 @@ public LiquibaseSchemaManagementProvider liquibaseDefaultDdlModeProvider(
7983
@Configuration(proxyBeanMethods = false)
8084
@ConditionalOnMissingBean(SpringLiquibase.class)
8185
@EnableConfigurationProperties({ DataSourceProperties.class, LiquibaseProperties.class })
82-
@Import(LiquibaseJpaDependencyConfiguration.class)
86+
@Import(LiquibaseEntityManagerFactoryDependsOnPostProcessor.class)
8387
public static class LiquibaseConfiguration {
8488

8589
private final LiquibaseProperties properties;
@@ -148,15 +152,15 @@ private String getProperty(Supplier<String> property, Supplier<String> defaultVa
148152
}
149153

150154
/**
151-
* Additional configuration to ensure that {@link EntityManagerFactory} beans depend
152-
* on the liquibase bean.
155+
* Post processor to ensure that {@link EntityManagerFactory} beans depend on the
156+
* liquibase bean.
153157
*/
154-
@Configuration(proxyBeanMethods = false)
155158
@ConditionalOnClass(LocalContainerEntityManagerFactoryBean.class)
156159
@ConditionalOnBean(AbstractEntityManagerFactoryBean.class)
157-
protected static class LiquibaseJpaDependencyConfiguration extends EntityManagerFactoryDependsOnPostProcessor {
160+
static class LiquibaseEntityManagerFactoryDependsOnPostProcessor
161+
extends EntityManagerFactoryDependsOnPostProcessor {
158162

159-
public LiquibaseJpaDependencyConfiguration() {
163+
LiquibaseEntityManagerFactoryDependsOnPostProcessor() {
160164
super(SpringLiquibase.class);
161165
}
162166

@@ -166,28 +170,26 @@ public LiquibaseJpaDependencyConfiguration() {
166170
* Additional configuration to ensure that {@link JdbcOperations} beans depend on the
167171
* liquibase bean.
168172
*/
169-
@Configuration(proxyBeanMethods = false)
170173
@ConditionalOnClass(JdbcOperations.class)
171174
@ConditionalOnBean(JdbcOperations.class)
172-
protected static class LiquibaseJdbcOperationsDependencyConfiguration extends JdbcOperationsDependsOnPostProcessor {
175+
static class LiquibaseJdbcOperationsDependsOnPostProcessor extends JdbcOperationsDependsOnPostProcessor {
173176

174-
public LiquibaseJdbcOperationsDependencyConfiguration() {
177+
LiquibaseJdbcOperationsDependsOnPostProcessor() {
175178
super(SpringLiquibase.class);
176179
}
177180

178181
}
179182

180183
/**
181-
* Additional configuration to ensure that {@link NamedParameterJdbcOperations} beans
182-
* depend on the liquibase bean.
184+
* Post processor to ensure that {@link NamedParameterJdbcOperations} beans depend on
185+
* the liquibase bean.
183186
*/
184-
@Configuration(proxyBeanMethods = false)
185187
@ConditionalOnClass(NamedParameterJdbcOperations.class)
186188
@ConditionalOnBean(NamedParameterJdbcOperations.class)
187-
protected static class LiquibaseNamedParameterJdbcOperationsDependencyConfiguration
189+
static class LiquibaseNamedParameterJdbcOperationsDependsOnPostProcessor
188190
extends NamedParameterJdbcOperationsDependsOnPostProcessor {
189191

190-
public LiquibaseNamedParameterJdbcOperationsDependencyConfiguration() {
192+
LiquibaseNamedParameterJdbcOperationsDependsOnPostProcessor() {
191193
super(SpringLiquibase.class);
192194
}
193195

spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/mongo/embedded/EmbeddedMongoAutoConfiguration.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,14 @@
5959
import org.springframework.boot.autoconfigure.data.mongo.ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor;
6060
import org.springframework.boot.autoconfigure.mongo.MongoAutoConfiguration;
6161
import org.springframework.boot.autoconfigure.mongo.MongoProperties;
62+
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.EmbeddedMongoClientDependsOnBeanFactoryPostProcessor;
63+
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration.EmbeddedReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor;
6264
import org.springframework.boot.context.properties.EnableConfigurationProperties;
6365
import org.springframework.context.ApplicationContext;
6466
import org.springframework.context.ConfigurableApplicationContext;
6567
import org.springframework.context.annotation.Bean;
6668
import org.springframework.context.annotation.Configuration;
69+
import org.springframework.context.annotation.Import;
6770
import org.springframework.core.env.MapPropertySource;
6871
import org.springframework.core.env.MutablePropertySources;
6972
import org.springframework.core.env.PropertySource;
@@ -84,6 +87,8 @@
8487
@EnableConfigurationProperties({ MongoProperties.class, EmbeddedMongoProperties.class })
8588
@AutoConfigureBefore(MongoAutoConfiguration.class)
8689
@ConditionalOnClass({ MongoClient.class, MongodStarter.class })
90+
@Import({ EmbeddedMongoClientDependsOnBeanFactoryPostProcessor.class,
91+
EmbeddedReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor.class })
8792
public class EmbeddedMongoAutoConfiguration {
8893

8994
private static final byte[] IP4_LOOPBACK_ADDRESS = { 127, 0, 0, 1 };
@@ -212,30 +217,29 @@ private ArtifactStoreBuilder getArtifactStore(Logger logger,
212217
}
213218

214219
/**
215-
* Additional configuration to ensure that {@link MongoClient} beans depend on any
220+
* Post processor to ensure that {@link MongoClient} beans depend on any
216221
* {@link MongodExecutable} beans.
217222
*/
218-
@Configuration(proxyBeanMethods = false)
219223
@ConditionalOnClass({ MongoClient.class, MongoClientFactoryBean.class })
220-
protected static class EmbeddedMongoDependencyConfiguration extends MongoClientDependsOnBeanFactoryPostProcessor {
224+
static class EmbeddedMongoClientDependsOnBeanFactoryPostProcessor
225+
extends MongoClientDependsOnBeanFactoryPostProcessor {
221226

222-
EmbeddedMongoDependencyConfiguration() {
227+
EmbeddedMongoClientDependsOnBeanFactoryPostProcessor() {
223228
super(MongodExecutable.class);
224229
}
225230

226231
}
227232

228233
/**
229-
* Additional configuration to ensure that
234+
* Post processor to ensure that
230235
* {@link com.mongodb.reactivestreams.client.MongoClient} beans depend on any
231236
* {@link MongodExecutable} beans.
232237
*/
233-
@Configuration(proxyBeanMethods = false)
234238
@ConditionalOnClass({ com.mongodb.reactivestreams.client.MongoClient.class, ReactiveMongoClientFactoryBean.class })
235-
protected static class EmbeddedReactiveMongoDependencyConfiguration
239+
static class EmbeddedReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor
236240
extends ReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor {
237241

238-
EmbeddedReactiveMongoDependencyConfiguration() {
242+
EmbeddedReactiveStreamsMongoClientDependsOnBeanFactoryPostProcessor() {
239243
super(MongodExecutable.class);
240244
}
241245

0 commit comments

Comments
 (0)