diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletsMappingDescriptionProvider.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletsMappingDescriptionProvider.java index 86a6fbdf1a..8644d8366b 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletsMappingDescriptionProvider.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletsMappingDescriptionProvider.java @@ -32,7 +32,6 @@ import org.springframework.boot.actuate.web.mappings.HandlerMethodDescription; import org.springframework.boot.actuate.web.mappings.MappingDescriptionProvider; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.ApplicationContext; -import org.springframework.util.ClassUtils; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.DispatcherServlet; @@ -50,18 +49,15 @@ import org.springframework.web.servlet.mvc.method.RequestMappingInfoHandlerMappi * @author Stephane Nicoll * @since 2.0.0 */ -@SuppressWarnings("deprecation") public class DispatcherServletsMappingDescriptionProvider implements MappingDescriptionProvider { - private static final List> descriptionProviders; + private static final List> descriptionProviders; static { - List> providers = new ArrayList<>(); + List> providers = new ArrayList<>(); providers.add(new RequestMappingInfoHandlerMappingDescriptionProvider()); providers.add(new UrlHandlerMappingDescriptionProvider()); - if (ClassUtils.isPresent("org.springframework.data.rest.webmvc.support.DelegatingHandlerMapping", null)) { - providers.add(new DelegatingHandlerMappingDescriptionProvider(new ArrayList<>(providers))); - } + providers.add(new IterableDelegatesHandlerMappingDescriptionProvider(new ArrayList<>(providers))); descriptionProviders = Collections.unmodifiableList(providers); } @@ -105,12 +101,12 @@ public class DispatcherServletsMappingDescriptionProvider implements MappingDesc return mappings.getHandlerMappings().stream().flatMap(this::describe).collect(Collectors.toList()); } - private Stream describe(T handlerMapping) { + private Stream describe(T handlerMapping) { return describe(handlerMapping, descriptionProviders).stream(); } @SuppressWarnings("unchecked") - private static List describe(T handlerMapping, + private static List describe(T handlerMapping, List> descriptionProviders) { for (HandlerMappingDescriptionProvider descriptionProvider : descriptionProviders) { if (descriptionProvider.getMappingClass().isInstance(handlerMapping)) { @@ -120,7 +116,7 @@ public class DispatcherServletsMappingDescriptionProvider implements MappingDesc return Collections.emptyList(); } - private interface HandlerMappingDescriptionProvider { + private interface HandlerMappingDescriptionProvider { Class getMappingClass(); @@ -171,26 +167,26 @@ public class DispatcherServletsMappingDescriptionProvider implements MappingDesc } - private static final class DelegatingHandlerMappingDescriptionProvider implements - HandlerMappingDescriptionProvider { + @SuppressWarnings("rawtypes") + private static final class IterableDelegatesHandlerMappingDescriptionProvider + implements HandlerMappingDescriptionProvider { private final List> descriptionProviders; - private DelegatingHandlerMappingDescriptionProvider( + private IterableDelegatesHandlerMappingDescriptionProvider( List> descriptionProviders) { this.descriptionProviders = descriptionProviders; } @Override - public Class getMappingClass() { - return org.springframework.data.rest.webmvc.support.DelegatingHandlerMapping.class; + public Class getMappingClass() { + return Iterable.class; } @Override - public List describe( - org.springframework.data.rest.webmvc.support.DelegatingHandlerMapping handlerMapping) { + public List describe(Iterable handlerMapping) { List descriptions = new ArrayList<>(); - for (HandlerMapping delegate : handlerMapping.getDelegates()) { + for (Object delegate : handlerMapping) { descriptions.addAll( DispatcherServletsMappingDescriptionProvider.describe(delegate, this.descriptionProviders)); }