LifecycleAutoConfigurationTests Class — spring-boot Architecture
Architecture documentation for the LifecycleAutoConfigurationTests class in LifecycleAutoConfigurationTests.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/context/LifecycleAutoConfigurationTests.java lines 35–92
class LifecycleAutoConfigurationTests {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(LifecycleAutoConfiguration.class));
@Test
void lifecycleProcessorIsConfiguredWithDefaultTimeout() {
this.contextRunner.run((context) -> {
assertThat(context).hasBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
Object processor = context.getBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
assertThat(processor).extracting("timeoutPerShutdownPhase").isEqualTo(30000L);
});
}
@Test
void lifecycleProcessorIsConfiguredWithCustomTimeout() {
this.contextRunner.withPropertyValues("spring.lifecycle.timeout-per-shutdown-phase=15s").run((context) -> {
assertThat(context).hasBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
Object processor = context.getBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
assertThat(processor).extracting("timeoutPerShutdownPhase").isEqualTo(15000L);
});
}
@Test
void lifecycleProcessorIsConfiguredWithCustomTimeoutInAChildContext() {
new ApplicationContextRunner().run((parent) -> {
this.contextRunner.withParent(parent)
.withPropertyValues("spring.lifecycle.timeout-per-shutdown-phase=15s")
.run((child) -> {
assertThat(child).hasBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
Object processor = child.getBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
assertThat(processor).extracting("timeoutPerShutdownPhase").isEqualTo(15000L);
});
});
}
@Test
void whenUserDefinesALifecycleProcessorBeanThenTheAutoConfigurationBacksOff() {
this.contextRunner.withUserConfiguration(LifecycleProcessorConfiguration.class).run((context) -> {
assertThat(context).hasBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
Object processor = context.getBean(AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME);
assertThat(processor).extracting("timeoutPerShutdownPhase").isEqualTo(5000L);
});
}
@Configuration(proxyBeanMethods = false)
static class LifecycleProcessorConfiguration {
@Bean(name = AbstractApplicationContext.LIFECYCLE_PROCESSOR_BEAN_NAME)
DefaultLifecycleProcessor customLifecycleProcessor() {
DefaultLifecycleProcessor processor = new DefaultLifecycleProcessor();
processor.setTimeoutPerShutdownPhase(5000);
return processor;
}
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free