commit
71cf0a3ec8
|
@ -466,8 +466,8 @@ public abstract class EndpointDiscoverer<E extends ExposableEndpoint<O>, O exten
|
|||
ExtensionBean(String beanName, Object bean) {
|
||||
this.bean = bean;
|
||||
this.beanName = beanName;
|
||||
MergedAnnotation<EndpointExtension> extensionAnnotation = MergedAnnotations.from(bean.getClass())
|
||||
.get(EndpointExtension.class);
|
||||
MergedAnnotation<EndpointExtension> extensionAnnotation = MergedAnnotations
|
||||
.from(bean.getClass(), SearchStrategy.TYPE_HIERARCHY).get(EndpointExtension.class);
|
||||
Class<?> endpointType = extensionAnnotation.getClass("endpoint");
|
||||
MergedAnnotation<Endpoint> endpointAnnotation = MergedAnnotations
|
||||
.from(endpointType, SearchStrategy.TYPE_HIERARCHY).get(Endpoint.class);
|
||||
|
|
|
@ -44,6 +44,8 @@ import org.springframework.boot.actuate.endpoint.invoke.ParameterValueMapper;
|
|||
import org.springframework.boot.actuate.endpoint.invoke.convert.ConversionServiceParameterValueMapper;
|
||||
import org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvoker;
|
||||
import org.springframework.boot.actuate.endpoint.invoker.cache.CachingOperationInvokerAdvisor;
|
||||
import org.springframework.cglib.proxy.Enhancer;
|
||||
import org.springframework.cglib.proxy.FixedValue;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
|
@ -236,6 +238,15 @@ class EndpointDiscovererTests {
|
|||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void getEndpointsWhenHasProxiedEndpointShouldReturnEndpoint() {
|
||||
load(ProxiedSpecializedEndpointsConfiguration.class, (context) -> {
|
||||
SpecializedEndpointDiscoverer discoverer = new SpecializedEndpointDiscoverer(context);
|
||||
Map<EndpointId, SpecializedExposableEndpoint> endpoints = mapEndpoints(discoverer.getEndpoints());
|
||||
assertThat(endpoints).containsOnlyKeys(EndpointId.of("test"), EndpointId.of("specialized"));
|
||||
});
|
||||
}
|
||||
|
||||
@Test
|
||||
void getEndpointsShouldApplyFilters() {
|
||||
load(SpecializedEndpointsConfiguration.class, (context) -> {
|
||||
|
@ -327,6 +338,19 @@ class EndpointDiscovererTests {
|
|||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class ProxiedSpecializedTestEndpointConfiguration {
|
||||
|
||||
@Bean
|
||||
SpecializedExtension specializedExtension() {
|
||||
Enhancer enhancer = new Enhancer();
|
||||
enhancer.setSuperclass(SpecializedExtension.class);
|
||||
enhancer.setCallback((FixedValue) () -> null);
|
||||
return (SpecializedExtension) enhancer.create();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Configuration(proxyBeanMethods = false)
|
||||
static class TestEndpointConfiguration {
|
||||
|
||||
|
@ -387,6 +411,11 @@ class EndpointDiscovererTests {
|
|||
|
||||
}
|
||||
|
||||
@Import({ TestEndpoint.class, SpecializedTestEndpoint.class, ProxiedSpecializedTestEndpointConfiguration.class })
|
||||
static class ProxiedSpecializedEndpointsConfiguration {
|
||||
|
||||
}
|
||||
|
||||
@Endpoint(id = "test")
|
||||
static class TestEndpoint {
|
||||
|
||||
|
|
Loading…
Reference in New Issue