Polish 'Inherit show-details property in health groups'

Rework the inheritance so that the property metadata JSON more
accurately reflects the default value.

See gh-22022
This commit is contained in:
Phillip Webb 2020-06-22 22:59:37 -07:00
parent 10de88884f
commit e6eb02603c
3 changed files with 21 additions and 18 deletions

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -33,11 +33,25 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties("management.endpoint.health")
public class HealthEndpointProperties extends HealthProperties {
/**
* When to show full health details.
*/
private Show showDetails = Show.NEVER;
/**
* Health endpoint groups.
*/
private Map<String, Group> group = new LinkedHashMap<>();
@Override
public Show getShowDetails() {
return this.showDetails;
}
public void setShowDetails(Show showDetails) {
this.showDetails = showDetails;
}
public Map<String, Group> getGroup() {
return this.group;
}
@ -58,7 +72,8 @@ public class HealthEndpointProperties extends HealthProperties {
private Set<String> exclude;
/**
* The default value of this field should be null for group.
* When to show full health details. Defaults to the value of
* 'management.endpoint.health.show-details'.
*/
private Show showDetails;
@ -83,7 +98,6 @@ public class HealthEndpointProperties extends HealthProperties {
return this.showDetails;
}
@Override
public void setShowDetails(Show showDetails) {
this.showDetails = showDetails;
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -43,11 +43,6 @@ public abstract class HealthProperties {
*/
private Show showComponents;
/**
* When to show full health details.
*/
private Show showDetails = Show.NEVER;
/**
* Roles used to determine whether or not a user is authorized to be shown details.
* When empty, all authenticated users are authorized.
@ -66,13 +61,7 @@ public abstract class HealthProperties {
this.showComponents = showComponents;
}
public Show getShowDetails() {
return this.showDetails;
}
public void setShowDetails(Show showDetails) {
this.showDetails = showDetails;
}
public abstract Show getShowDetails();
public Set<String> getRoles() {
return this.roles;

View File

@ -1,5 +1,5 @@
/*
* Copyright 2012-2019 the original author or authors.
* Copyright 2012-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@ -310,7 +310,7 @@ class AutoConfiguredHealthEndpointGroupsTests {
}
@Test
void createWhenNoDefinedGroupsShowDetails() {
void createWhenGroupWithNoShowDetailsOverrideInheritsShowDetails() {
this.contextRunner.withPropertyValues("management.endpoint.health.show-details=always",
"management.endpoint.health.group.a.include=*").run((context) -> {
HealthEndpointGroups groups = context.getBean(HealthEndpointGroups.class);