Skip to content

Commit 190d4cb

Browse files
committed
Relax ImportsContextCustomizer to only require a class name
Closes gh-32421
1 parent 0916736 commit 190d4cb

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

spring-boot-project/spring-boot-test/src/main/java/org/springframework/boot/test/context/ImportsContextCustomizer.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,14 @@
6060
*/
6161
class ImportsContextCustomizer implements ContextCustomizer {
6262

63-
static final String TEST_CLASS_ATTRIBUTE = "testClass";
63+
private static final String TEST_CLASS_NAME_ATTRIBUTE = "testClassName";
6464

65-
private final Class<?> testClass;
65+
private final String testClassName;
6666

6767
private final ContextCustomizerKey key;
6868

6969
ImportsContextCustomizer(Class<?> testClass) {
70-
this.testClass = testClass;
70+
this.testClassName = testClass.getName();
7171
this.key = new ContextCustomizerKey(testClass);
7272
}
7373

@@ -84,13 +84,13 @@ private void registerCleanupPostProcessor(BeanDefinitionRegistry registry, Annot
8484
BeanDefinition definition = registerBean(registry, reader, ImportsCleanupPostProcessor.BEAN_NAME,
8585
ImportsCleanupPostProcessor.class);
8686
definition.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);
87-
definition.getConstructorArgumentValues().addIndexedArgumentValue(0, this.testClass);
87+
definition.getConstructorArgumentValues().addIndexedArgumentValue(0, this.testClassName);
8888
}
8989

9090
private void registerImportsConfiguration(BeanDefinitionRegistry registry, AnnotatedBeanDefinitionReader reader) {
9191
BeanDefinition definition = registerBean(registry, reader, ImportsConfiguration.BEAN_NAME,
9292
ImportsConfiguration.class);
93-
definition.setAttribute(TEST_CLASS_ATTRIBUTE, this.testClass);
93+
definition.setAttribute(TEST_CLASS_NAME_ATTRIBUTE, this.testClassName);
9494
}
9595

9696
private BeanDefinitionRegistry getBeanDefinitionRegistry(ApplicationContext context) {
@@ -162,8 +162,8 @@ public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
162162
@Override
163163
public String[] selectImports(AnnotationMetadata importingClassMetadata) {
164164
BeanDefinition definition = this.beanFactory.getBeanDefinition(ImportsConfiguration.BEAN_NAME);
165-
Object testClass = (definition != null) ? definition.getAttribute(TEST_CLASS_ATTRIBUTE) : null;
166-
return (testClass != null) ? new String[] { ((Class<?>) testClass).getName() } : NO_IMPORTS;
165+
Object testClassName = definition.getAttribute(TEST_CLASS_NAME_ATTRIBUTE);
166+
return (testClassName != null) ? new String[] { (String) testClassName } : NO_IMPORTS;
167167
}
168168

169169
}
@@ -177,10 +177,10 @@ static class ImportsCleanupPostProcessor implements BeanDefinitionRegistryPostPr
177177

178178
static final String BEAN_NAME = ImportsCleanupPostProcessor.class.getName();
179179

180-
private final Class<?> testClass;
180+
private final String testClassName;
181181

182-
ImportsCleanupPostProcessor(Class<?> testClass) {
183-
this.testClass = testClass;
182+
ImportsCleanupPostProcessor(String testClassName) {
183+
this.testClassName = testClassName;
184184
}
185185

186186
@Override
@@ -193,7 +193,7 @@ public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) t
193193
String[] names = registry.getBeanDefinitionNames();
194194
for (String name : names) {
195195
BeanDefinition definition = registry.getBeanDefinition(name);
196-
if (this.testClass.getName().equals(definition.getBeanClassName())) {
196+
if (this.testClassName.equals(definition.getBeanClassName())) {
197197
registry.removeBeanDefinition(name);
198198
}
199199
}

0 commit comments

Comments
 (0)