Skip to content

Commit e55fe90

Browse files
committed
Make DynamicPropertyRegistrarBeanInitializer public
In order to allow third parties (for example, Spring Boot) to ensure that a DynamicPropertyRegistrarBeanInitializer has been registered in an ApplicationContext which has not been customized by the DynamicPropertiesContextCustomizer, this commit converts DynamicPropertyRegistrarBeanInitializer to a public API for use in such special use cases. Closes gh-33593
1 parent b4bfb89 commit e55fe90

File tree

2 files changed

+12
-9
lines changed

2 files changed

+12
-9
lines changed

spring-test/src/main/java/org/springframework/test/context/support/DynamicPropertiesContextCustomizer.java

+2-7
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,6 @@
5050
*/
5151
class DynamicPropertiesContextCustomizer implements ContextCustomizer {
5252

53-
private static final String DYNAMIC_PROPERTY_REGISTRAR_BEAN_INITIALIZER_BEAN_NAME =
54-
DynamicPropertiesContextCustomizer.class.getName() + ".dynamicPropertyRegistrarBeanInitializer";
55-
56-
5753
private final Set<Method> methods;
5854

5955

@@ -70,11 +66,10 @@ public void customizeContext(ConfigurableApplicationContext context, MergedConte
7066
throw new IllegalStateException("BeanFactory must be a BeanDefinitionRegistry");
7167
}
7268

73-
if (!beanDefinitionRegistry.containsBeanDefinition(DYNAMIC_PROPERTY_REGISTRAR_BEAN_INITIALIZER_BEAN_NAME)) {
69+
if (!beanDefinitionRegistry.containsBeanDefinition(DynamicPropertyRegistrarBeanInitializer.BEAN_NAME)) {
7470
BeanDefinition beanDefinition = new RootBeanDefinition(DynamicPropertyRegistrarBeanInitializer.class);
7571
beanDefinition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
76-
beanDefinitionRegistry.registerBeanDefinition(
77-
DYNAMIC_PROPERTY_REGISTRAR_BEAN_INITIALIZER_BEAN_NAME, beanDefinition);
72+
beanDefinitionRegistry.registerBeanDefinition(DynamicPropertyRegistrarBeanInitializer.BEAN_NAME, beanDefinition);
7873
}
7974

8075
if (!this.methods.isEmpty()) {

spring-test/src/main/java/org/springframework/test/context/support/DynamicPropertyRegistrarBeanInitializer.java

+10-2
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,24 @@
3030
import org.springframework.test.context.DynamicPropertyRegistry;
3131

3232
/**
33-
* Internal component which eagerly initializes {@link DynamicPropertyRegistrar}
33+
* {@link BeanFactoryInitializer} that eagerly initializes {@link DynamicPropertyRegistrar}
3434
* beans.
3535
*
36+
* <p>Primarily intended for internal use within the Spring TestContext Framework.
37+
*
3638
* @author Sam Brannen
3739
* @since 6.2
3840
*/
39-
class DynamicPropertyRegistrarBeanInitializer implements BeanFactoryInitializer<ListableBeanFactory>, EnvironmentAware {
41+
public class DynamicPropertyRegistrarBeanInitializer implements BeanFactoryInitializer<ListableBeanFactory>, EnvironmentAware {
4042

4143
private static final Log logger = LogFactory.getLog(DynamicPropertyRegistrarBeanInitializer.class);
4244

45+
/**
46+
* The bean name of the internally managed {@code DynamicPropertyRegistrarBeanInitializer}.
47+
*/
48+
static final String BEAN_NAME =
49+
"org.springframework.test.context.support.internalDynamicPropertyRegistrarBeanInitializer";
50+
4351

4452
@Nullable
4553
private ConfigurableEnvironment environment;

0 commit comments

Comments
 (0)