From ff7717932abc6812630489d2da68ded471d232e0 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Fri, 31 Jul 2015 14:55:46 +0100 Subject: [PATCH] Weed out duplicate links if there are 2 endpoints with the same path Fixes gh-3570 --- ...ntWebMvcHypermediaManagementContextConfiguration.java | 1 - .../boot/actuate/autoconfigure/LinksEnhancer.java | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcHypermediaManagementContextConfiguration.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcHypermediaManagementContextConfiguration.java index 1ea2289cc42..2195ff26277 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcHypermediaManagementContextConfiguration.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/EndpointWebMvcHypermediaManagementContextConfiguration.java @@ -23,7 +23,6 @@ import java.util.concurrent.ConcurrentHashMap; import javax.annotation.PostConstruct; -import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.annotation.AnnotatedBeanDefinition; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.config.BeanDefinition; diff --git a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/LinksEnhancer.java b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/LinksEnhancer.java index b223c62ca3b..97fdaf9ff8f 100644 --- a/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/LinksEnhancer.java +++ b/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/autoconfigure/LinksEnhancer.java @@ -16,6 +16,9 @@ package org.springframework.boot.actuate.autoconfigure; +import java.util.HashSet; +import java.util.Set; + import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoint; import org.springframework.boot.actuate.endpoint.mvc.MvcEndpoints; import org.springframework.hateoas.ResourceSupport; @@ -24,7 +27,7 @@ import org.springframework.util.StringUtils; import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo; /** - * Adds enpoints links to {@link ResourceSupport}. + * Adds endpoints links to {@link ResourceSupport}. * * @author Dave Syer */ @@ -44,10 +47,12 @@ class LinksEnhancer { resource.add(linkTo(LinksEnhancer.class).slash(this.rootPath + self) .withSelfRel()); } + Set added = new HashSet(); for (MvcEndpoint endpoint : this.endpoints.getEndpoints()) { - if (!endpoint.getPath().equals(self)) { + if (!endpoint.getPath().equals(self) && !added.contains(endpoint.getPath())) { addEndpointLink(resource, endpoint); } + added.add(endpoint.getPath()); } }