Ensure custom HTTP code mappings for /health don't remove default mappings

Previously any custom http code mapping would remove the default mappings. With this commit the behaviour is changed so that default mappings will stay if a custom mapping is registered. Certainly a default mapping can be overridden.

fixes #1264
This commit is contained in:
Christian Dupuis 2014-07-21 16:11:38 +02:00
parent 2ca5e8e5d6
commit 977c5a988c
2 changed files with 15 additions and 7 deletions

View File

@ -156,9 +156,8 @@ public class EndpointWebMvcAutoConfiguration implements ApplicationContextAware,
@ConditionalOnExpression("${endpoints.health.enabled:true}")
public HealthMvcEndpoint healthMvcEndpoint(HealthEndpoint delegate) {
HealthMvcEndpoint healthMvcEndpoint = new HealthMvcEndpoint(delegate);
if (this.healthMvcEndpointProperties.getMapping() != null
&& this.healthMvcEndpointProperties.getMapping().size() > 0) {
healthMvcEndpoint.setStatusMapping(this.healthMvcEndpointProperties
if (this.healthMvcEndpointProperties.getMapping() != null) {
healthMvcEndpoint.addStatusMapping(this.healthMvcEndpointProperties
.getMapping());
}
return healthMvcEndpoint;

View File

@ -31,7 +31,7 @@ import org.springframework.web.bind.annotation.ResponseBody;
/**
* Adapter to expose {@link HealthEndpoint} as an {@link MvcEndpoint}.
*
*
* @author Christian Dupuis
* @since 1.1.0
*/
@ -50,7 +50,7 @@ public class HealthMvcEndpoint extends EndpointMvcAdapter {
}
/**
* Set specific status mappings
* Set specific status mappings.
* @param statusMapping a map of status code to {@link HttpStatus}
*/
public void setStatusMapping(Map<String, HttpStatus> statusMapping) {
@ -59,7 +59,16 @@ public class HealthMvcEndpoint extends EndpointMvcAdapter {
}
/**
* Add a status mapping to the existing set
* Add specfic status mappings to the existing set.
* @param statusMapping a map of status code to {@link HttpStatus}
*/
public void addStatusMapping(Map<String, HttpStatus> statusMapping) {
Assert.notNull(statusMapping, "StatusMapping must not be null");
this.statusMapping.putAll(statusMapping);
}
/**
* Add a status mapping to the existing set.
* @param status the status to map
* @param httpStatus the http status
*/
@ -70,7 +79,7 @@ public class HealthMvcEndpoint extends EndpointMvcAdapter {
}
/**
* Add a status mapping to the existing set
* Add a status mapping to the existing set.
* @param statusCode the status code to map
* @param httpStatus the http status
*/