Allow custom availability states
Create a general purpose `AvailabilityState` interface and refactor the existing `LivenessState` and `ReadinessState` to use it. A single `AvailabilityChangeEvent` is now used to carry all availability state updates. This commit also renames `ApplicationAvailabilityProvider` to `ApplicationAvailabilityBean` and extracts an `ApplicationAvailability` interface that other beans can inject. The helps to hide the event listener method, which is really internal. Finally the state enums have been renamed as follows: - `LivenessState.LIVE` -> `LivenessState.CORRECT` - `ReadinessState.READY` -> `ReadinessState.ACCEPTING_TRAFFIC` - `ReadinessState.UNREADY` -> `ReadinessState.REFUSING_TRAFFIC` See gh-20962
This commit is contained in:
@@ -16,13 +16,13 @@
|
||||
|
||||
package org.springframework.boot.autoconfigure.availability;
|
||||
|
||||
import org.springframework.boot.availability.ApplicationAvailabilityProvider;
|
||||
import org.springframework.boot.availability.ApplicationAvailabilityBean;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
/**
|
||||
* {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration} for
|
||||
* {@link ApplicationAvailabilityProvider}.
|
||||
* {@link ApplicationAvailabilityBean}.
|
||||
*
|
||||
* @author Brian Clozel
|
||||
* @since 2.3.0
|
||||
@@ -31,8 +31,8 @@ import org.springframework.context.annotation.Configuration;
|
||||
public class ApplicationAvailabilityAutoConfiguration {
|
||||
|
||||
@Bean
|
||||
public ApplicationAvailabilityProvider applicationAvailabilityProvider() {
|
||||
return new ApplicationAvailabilityProvider();
|
||||
public ApplicationAvailabilityBean applicationAvailability() {
|
||||
return new ApplicationAvailabilityBean();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ import org.junit.jupiter.api.Test;
|
||||
|
||||
import org.springframework.boot.autoconfigure.AutoConfigurations;
|
||||
import org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration;
|
||||
import org.springframework.boot.availability.ApplicationAvailabilityProvider;
|
||||
import org.springframework.boot.availability.ApplicationAvailability;
|
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
@@ -37,7 +37,7 @@ class ApplicationAvailabilityAutoConfigurationTests {
|
||||
|
||||
@Test
|
||||
void providerIsPresent() {
|
||||
this.contextRunner.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailabilityProvider.class)));
|
||||
this.contextRunner.run(((context) -> assertThat(context).hasSingleBean(ApplicationAvailability.class)));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user