SharedMetadataReaderFactoryContextInitializerTests Class — spring-boot Architecture
Architecture documentation for the SharedMetadataReaderFactoryContextInitializerTests class in SharedMetadataReaderFactoryContextInitializerTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/SharedMetadataReaderFactoryContextInitializerTests.java lines 49–118
class SharedMetadataReaderFactoryContextInitializerTests {
@Test
@SuppressWarnings("unchecked")
void checkOrderOfInitializer() {
SpringApplication application = new SpringApplication(TestConfig.class);
application.setWebApplicationType(WebApplicationType.NONE);
List<ApplicationContextInitializer<?>> initializers = (List<ApplicationContextInitializer<?>>) ReflectionTestUtils
.getField(application, "initializers");
// Simulate what would happen if an initializer was added using spring.factories
// and happened to be loaded first
assertThat(initializers).isNotNull();
initializers.add(0, new Initializer());
GenericApplicationContext context = (GenericApplicationContext) application.run();
BeanDefinition definition = context.getBeanDefinition(SharedMetadataReaderFactoryContextInitializer.BEAN_NAME);
assertThat(definition.getAttribute("seen")).isEqualTo(true);
}
@Test
void initializeWhenUsingSupplierDecorates() {
GenericApplicationContext context = new GenericApplicationContext();
BeanDefinitionRegistry registry = (BeanDefinitionRegistry) context.getBeanFactory();
ConfigurationClassPostProcessor configurationAnnotationPostProcessor = mock(
ConfigurationClassPostProcessor.class);
BeanDefinition beanDefinition = BeanDefinitionBuilder
.rootBeanDefinition(ConfigurationClassPostProcessor.class, () -> configurationAnnotationPostProcessor)
.getBeanDefinition();
registry.registerBeanDefinition(AnnotationConfigUtils.CONFIGURATION_ANNOTATION_PROCESSOR_BEAN_NAME,
beanDefinition);
CachingMetadataReaderFactoryPostProcessor postProcessor = new CachingMetadataReaderFactoryPostProcessor(
context);
postProcessor.postProcessBeanDefinitionRegistry(registry);
context.refresh();
ConfigurationClassPostProcessor bean = context.getBean(ConfigurationClassPostProcessor.class);
assertThat(bean).isSameAs(configurationAnnotationPostProcessor);
then(configurationAnnotationPostProcessor).should()
.setMetadataReaderFactory(assertArg((metadataReaderFactory) -> assertThat(metadataReaderFactory)
.isInstanceOf(CachingMetadataReaderFactory.class)));
}
static class TestConfig {
}
static class Initializer implements ApplicationContextInitializer<GenericApplicationContext> {
@Override
public void initialize(GenericApplicationContext applicationContext) {
applicationContext.addBeanFactoryPostProcessor(new PostProcessor());
}
}
static class PostProcessor implements BeanDefinitionRegistryPostProcessor {
@Override
public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) {
}
@Override
public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) {
for (String name : registry.getBeanDefinitionNames()) {
BeanDefinition definition = registry.getBeanDefinition(name);
definition.setAttribute("seen", true);
}
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free