Browse Source

Merge branch '6.2.x'

pull/34741/head
Sam Brannen 12 months ago
parent
commit
e35db3311f
  1. 5
      spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideContextCustomizer.java
  2. 8
      spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideRegistry.java
  3. 6
      spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideTestExecutionListener.java

5
spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideContextCustomizer.java

@ -34,9 +34,6 @@ import org.springframework.test.context.MergedContextConfiguration; @@ -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 { @@ -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,

8
spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideRegistry.java

@ -29,8 +29,6 @@ import org.springframework.beans.factory.BeanFactory; @@ -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 @@ -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 { @@ -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);
}
/**

6
spring-test/src/main/java/org/springframework/test/context/bean/override/BeanOverrideTestExecutionListener.java

@ -98,14 +98,14 @@ public class BeanOverrideTestExecutionListener extends AbstractTestExecutionList @@ -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();

Loading…
Cancel
Save