Make ApplicationAvailabilityBean receive events with lazy init
Fixes gh-35161
This commit is contained in:
parent
091d6204cb
commit
7c2c2ebb1b
|
@ -34,8 +34,8 @@ import org.springframework.context.annotation.Bean;
|
|||
public class ApplicationAvailabilityAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
@ConditionalOnMissingBean
|
||||
public ApplicationAvailability applicationAvailability() {
|
||||
@ConditionalOnMissingBean(ApplicationAvailability.class)
|
||||
public ApplicationAvailabilityBean applicationAvailability() {
|
||||
return new ApplicationAvailabilityBean();
|
||||
}
|
||||
|
||||
|
|
|
@ -18,8 +18,11 @@ package org.springframework.boot.autoconfigure.availability;
|
|||
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.LazyInitializationBeanFactoryPostProcessor;
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.availability.ApplicationAvailability;
|
||||
import org.springframework.boot.availability.AvailabilityChangeEvent;
|
||||
import org.springframework.boot.availability.ReadinessState;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
|
@ -51,4 +54,13 @@ class ApplicationAvailabilityAutoConfigurationTests {
|
|||
.hasBean("customApplicationAvailability")));
|
||||
}
|
||||
|
||||
@Test
|
||||
void whenLazyInitializationIsEnabledApplicationAvailabilityBeanShouldStillReceiveAvailabilityChangeEvents() {
|
||||
this.contextRunner.withBean(LazyInitializationBeanFactoryPostProcessor.class).run((context) -> {
|
||||
AvailabilityChangeEvent.publish(context, ReadinessState.ACCEPTING_TRAFFIC);
|
||||
ApplicationAvailability applicationAvailability = context.getBean(ApplicationAvailability.class);
|
||||
assertThat(applicationAvailability.getLastChangeEvent(ReadinessState.class)).isNotNull();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue