Merge branch '6.2.x'

This commit is contained in:
Sam Brannen
2025-04-10 17:07:18 +02:00
3 changed files with 8 additions and 11 deletions

View File

@@ -34,9 +34,6 @@ import org.springframework.test.context.MergedContextConfiguration;
*/
class BeanOverrideContextCustomizer implements ContextCustomizer {
static final String REGISTRY_BEAN_NAME =
"org.springframework.test.context.bean.override.internalBeanOverrideRegistry";
private static final String INFRASTRUCTURE_BEAN_NAME =
"org.springframework.test.context.bean.override.internalBeanOverridePostProcessor";
@@ -60,7 +57,7 @@ class BeanOverrideContextCustomizer implements ContextCustomizer {
// AOT processing, since a bean definition cannot be generated for the
// Set<BeanOverrideHandler> argument that it accepts in its constructor.
BeanOverrideRegistry beanOverrideRegistry = new BeanOverrideRegistry(beanFactory);
beanFactory.registerSingleton(REGISTRY_BEAN_NAME, beanOverrideRegistry);
beanFactory.registerSingleton(BeanOverrideRegistry.BEAN_NAME, beanOverrideRegistry);
beanFactory.registerSingleton(INFRASTRUCTURE_BEAN_NAME,
new BeanOverrideBeanFactoryPostProcessor(this.handlers, beanOverrideRegistry));
beanFactory.registerSingleton(EARLY_INFRASTRUCTURE_BEAN_NAME,

View File

@@ -29,8 +29,6 @@ import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.util.Assert;
import static org.springframework.test.context.bean.override.BeanOverrideContextCustomizer.REGISTRY_BEAN_NAME;
/**
* An internal class used to track {@link BeanOverrideHandler}-related state after
* the bean factory has been processed and to provide lookup facilities to test
@@ -46,6 +44,8 @@ import static org.springframework.test.context.bean.override.BeanOverrideContext
*/
class BeanOverrideRegistry {
static final String BEAN_NAME = "org.springframework.test.context.bean.override.internalBeanOverrideRegistry";
private static final Log logger = LogFactory.getLog(BeanOverrideRegistry.class);
@@ -63,8 +63,8 @@ class BeanOverrideRegistry {
Assert.notNull(beanFactory, "ConfigurableBeanFactory must not be null");
this.beanFactory = beanFactory;
BeanFactory parentBeanFactory = beanFactory.getParentBeanFactory();
this.parent = (parentBeanFactory != null && parentBeanFactory.containsBean(REGISTRY_BEAN_NAME) ?
parentBeanFactory.getBean(REGISTRY_BEAN_NAME, BeanOverrideRegistry.class) : null);
this.parent = (parentBeanFactory != null && parentBeanFactory.containsBean(BEAN_NAME) ?
parentBeanFactory.getBean(BEAN_NAME, BeanOverrideRegistry.class) : null);
}
/**

View File

@@ -98,14 +98,14 @@ public class BeanOverrideTestExecutionListener extends AbstractTestExecutionList
Object testInstance = testContext.getTestInstance();
ApplicationContext applicationContext = testContext.getApplicationContext();
Assert.state(applicationContext.containsBean(BeanOverrideContextCustomizer.REGISTRY_BEAN_NAME), () -> """
Assert.state(applicationContext.containsBean(BeanOverrideRegistry.BEAN_NAME), () -> """
Test class %s declares @BeanOverride fields %s, but no BeanOverrideHandler has been registered. \
If you are using @ContextHierarchy, ensure that context names for bean overrides match \
configured @ContextConfiguration names.""".formatted(testContext.getTestClass().getSimpleName(),
handlers.stream().map(BeanOverrideHandler::getField).filter(Objects::nonNull)
.map(Field::getName).toList()));
BeanOverrideRegistry beanOverrideRegistry = applicationContext
.getBean(BeanOverrideContextCustomizer.REGISTRY_BEAN_NAME, BeanOverrideRegistry.class);
BeanOverrideRegistry beanOverrideRegistry = applicationContext.getBean(BeanOverrideRegistry.BEAN_NAME,
BeanOverrideRegistry.class);
for (BeanOverrideHandler handler : handlers) {
Field field = handler.getField();