From 440a634201c518b621e68f47506eb42dffcb6347 Mon Sep 17 00:00:00 2001 From: seanyu Date: Mon, 8 May 2023 11:39:58 +0800 Subject: [PATCH] fix feign rpc client --- .../RpcEnhancementAutoConfiguration.java | 18 +++++----- .../feign/EnhancedFeignBeanPostProcessor.java | 4 +-- ...hancedFeignBlockingLoadBalancerClient.java | 9 +++-- ... => EnhancedLoadBalancerClientAspect.java} | 36 +++++++++---------- .../filter/EnhancedServletFilter.java | 9 ++--- .../assembly/AssemblyRequestContext.java | 3 +- .../EnhancedFeignBeanPostProcessorTest.java | 5 --- ...edFeignBlockingLoadBalancerClientTest.java | 2 +- ...EnhancedLoadBalancerClientAspectTest.java} | 19 +++++----- .../plugin/AssemblyMetadataProviderTest.java | 2 +- .../plugin/AssemblyResponseContextTest.java | 4 +-- ...edWebClientExchangeFilterFunctionTest.java | 4 +-- 12 files changed, 54 insertions(+), 61 deletions(-) rename spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/{PolarisLoadBalancerFeignRequestTransformer.java => EnhancedLoadBalancerClientAspect.java} (62%) rename spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/{PolarisLoadBalancerFeignRequestTransformerTest.java => EnhancedLoadBalancerClientAspectTest.java} (88%) diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java index 1882ed2b1..b81c67289 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/config/RpcEnhancementAutoConfiguration.java @@ -24,7 +24,7 @@ import com.tencent.cloud.common.pojo.PolarisServiceInstance; import com.tencent.cloud.polaris.context.ConditionalOnPolarisEnabled; import com.tencent.cloud.polaris.context.config.PolarisContextAutoConfiguration; import com.tencent.cloud.rpc.enhancement.feign.EnhancedFeignBeanPostProcessor; -import com.tencent.cloud.rpc.enhancement.feign.PolarisLoadBalancerFeignRequestTransformer; +import com.tencent.cloud.rpc.enhancement.feign.EnhancedLoadBalancerClientAspect; import com.tencent.cloud.rpc.enhancement.filter.EnhancedReactiveFilter; import com.tencent.cloud.rpc.enhancement.filter.EnhancedServletFilter; import com.tencent.cloud.rpc.enhancement.plugin.DefaultEnhancedPluginRunner; @@ -70,11 +70,11 @@ import org.springframework.core.annotation.Order; import org.springframework.web.client.RestTemplate; import org.springframework.web.reactive.function.client.WebClient; -import static jakarta.servlet.DispatcherType.ASYNC; -import static jakarta.servlet.DispatcherType.ERROR; -import static jakarta.servlet.DispatcherType.FORWARD; -import static jakarta.servlet.DispatcherType.INCLUDE; -import static jakarta.servlet.DispatcherType.REQUEST; +import static javax.servlet.DispatcherType.ASYNC; +import static javax.servlet.DispatcherType.ERROR; +import static javax.servlet.DispatcherType.FORWARD; +import static javax.servlet.DispatcherType.INCLUDE; +import static javax.servlet.DispatcherType.REQUEST; /** * Auto Configuration for Polaris {@link feign.Feign} OR {@link RestTemplate} which can automatically bring in the call @@ -197,9 +197,9 @@ public class RpcEnhancementAutoConfiguration { @Bean @ConditionalOnMissingBean - @ConditionalOnClass(name = {"org.springframework.cloud.openfeign.loadbalancer.LoadBalancerFeignRequestTransformer"}) - public PolarisLoadBalancerFeignRequestTransformer polarisLoadBalancerFeignRequestTransformer() { - return new PolarisLoadBalancerFeignRequestTransformer(); + @ConditionalOnClass(name = "org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser") + public EnhancedLoadBalancerClientAspect enhancedLoadBalancerClientAspect() { + return new EnhancedLoadBalancerClientAspect(); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessor.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessor.java index 99c5f6f2c..029fc22c3 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessor.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessor.java @@ -27,7 +27,6 @@ import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient; -import org.springframework.cloud.openfeign.loadbalancer.LoadBalancerFeignRequestTransformer; import org.springframework.cloud.openfeign.loadbalancer.RetryableFeignBlockingLoadBalancerClient; /** @@ -64,8 +63,7 @@ public class EnhancedFeignBeanPostProcessor implements BeanPostProcessor, BeanFa if (delegate != null) { return new EnhancedFeignBlockingLoadBalancerClient(createPolarisFeignClient(delegate), factory.getBean(BlockingLoadBalancerClient.class), - factory.getBean(LoadBalancerClientFactory.class), - factory.getBeanProvider(LoadBalancerFeignRequestTransformer.class).stream().toList() + factory.getBean(LoadBalancerClientFactory.class) ); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClient.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClient.java index 9040d0984..18536bc8c 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClient.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClient.java @@ -17,14 +17,11 @@ package com.tencent.cloud.rpc.enhancement.feign; -import java.util.List; - import feign.Client; import org.springframework.cloud.client.loadbalancer.LoadBalancerClient; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient; -import org.springframework.cloud.openfeign.loadbalancer.LoadBalancerFeignRequestTransformer; /** * Wrap for {@link FeignBlockingLoadBalancerClient}. @@ -34,7 +31,9 @@ import org.springframework.cloud.openfeign.loadbalancer.LoadBalancerFeignRequest public class EnhancedFeignBlockingLoadBalancerClient extends FeignBlockingLoadBalancerClient { public EnhancedFeignBlockingLoadBalancerClient(Client delegate, LoadBalancerClient loadBalancerClient, - LoadBalancerClientFactory loadBalancerClientFactory, List transformers) { - super(delegate, loadBalancerClient, loadBalancerClientFactory, transformers); + LoadBalancerClientFactory loadBalancerClientFactory) { + super(delegate, loadBalancerClient, loadBalancerClientFactory); } + + } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/PolarisLoadBalancerFeignRequestTransformer.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedLoadBalancerClientAspect.java similarity index 62% rename from spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/PolarisLoadBalancerFeignRequestTransformer.java rename to spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedLoadBalancerClientAspect.java index 65b16da8f..0bab294ab 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/PolarisLoadBalancerFeignRequestTransformer.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedLoadBalancerClientAspect.java @@ -18,32 +18,32 @@ package com.tencent.cloud.rpc.enhancement.feign; import com.tencent.cloud.common.metadata.MetadataContextHolder; -import feign.Request; - -import org.springframework.cloud.client.ServiceInstance; -import org.springframework.cloud.openfeign.loadbalancer.LoadBalancerFeignRequestTransformer; +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; import static com.tencent.cloud.rpc.enhancement.resttemplate.PolarisLoadBalancerRequestTransformer.LOAD_BALANCER_SERVICE_INSTANCE; /** - * PolarisLoadBalancerFeignRequestTransformer. + * EnhancedLoadBalancerClientAspect. * * @author sean yu */ -public class PolarisLoadBalancerFeignRequestTransformer implements LoadBalancerFeignRequestTransformer { +@Aspect +public class EnhancedLoadBalancerClientAspect { + + @Pointcut("execution(public * org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser.choose(..)) ") + public void pointcut() { - /** - * Transform Request, add Loadbalancer ServiceInstance to MetadataContext. - * @param request request - * @param instance instance - * @return HttpRequest - */ - @Override - public Request transformRequest(Request request, ServiceInstance instance) { - if (instance != null) { - MetadataContextHolder.get().setLoadbalancer(LOAD_BALANCER_SERVICE_INSTANCE, instance); - } - return request; } + @Around("pointcut()") + public Object invoke(ProceedingJoinPoint joinPoint) throws Throwable { + Object result = joinPoint.proceed(); + if (result != null) { + MetadataContextHolder.get().setLoadbalancer(LOAD_BALANCER_SERVICE_INSTANCE, result); + } + return result; + } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/filter/EnhancedServletFilter.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/filter/EnhancedServletFilter.java index 894e8944a..9d404281c 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/filter/EnhancedServletFilter.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/filter/EnhancedServletFilter.java @@ -24,16 +24,17 @@ import java.util.Collection; import java.util.Collections; import java.util.Enumeration; +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + import com.tencent.cloud.common.constant.MetadataConstant; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPluginContext; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPluginRunner; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedPluginType; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedRequestContext; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedResponseContext; -import jakarta.servlet.FilterChain; -import jakarta.servlet.ServletException; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.servlet.http.HttpServletResponse; import org.springframework.core.annotation.Order; import org.springframework.http.HttpHeaders; diff --git a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/assembly/AssemblyRequestContext.java b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/assembly/AssemblyRequestContext.java index c5a8befa8..dfcaa2ed8 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/assembly/AssemblyRequestContext.java +++ b/spring-cloud-tencent-rpc-enhancement/src/main/java/com/tencent/cloud/rpc/enhancement/plugin/assembly/AssemblyRequestContext.java @@ -25,6 +25,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.stream.Collectors; import com.google.common.net.HttpHeaders; import com.tencent.cloud.rpc.enhancement.plugin.EnhancedRequestContext; @@ -58,7 +59,7 @@ public class AssemblyRequestContext implements RequestContext { .orElse(new ArrayList<>()) .stream() .flatMap(it -> Arrays.stream(it.split(";"))) - .toList(); + .collect(Collectors.toList()); allCookies.forEach(cookie -> { String[] cookieKV = cookie.split("="); if (cookieKV.length == 2) { diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessorTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessorTest.java index 6481518bc..40e09a94e 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessorTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBeanPostProcessorTest.java @@ -22,12 +22,10 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.BeanFactory; -import org.springframework.beans.factory.ObjectProvider; import org.springframework.cloud.client.loadbalancer.LoadBalancerProperties; import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient; import org.springframework.cloud.loadbalancer.support.LoadBalancerClientFactory; import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient; -import org.springframework.cloud.openfeign.loadbalancer.LoadBalancerFeignRequestTransformer; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; @@ -65,9 +63,6 @@ public class EnhancedFeignBeanPostProcessorTest { } return null; }).when(beanFactory).getBean(any(Class.class)); - ObjectProvider objectProvider = mock(ObjectProvider.class); - doReturn(new PolarisLoadBalancerFeignRequestTransformer()).when(objectProvider).getObject(); - doReturn(objectProvider).when(beanFactory).getBeanProvider(LoadBalancerFeignRequestTransformer.class); enhancedFeignBeanPostProcessor.setBeanFactory(beanFactory); // isNeedWrap(bean) == false diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClientTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClientTest.java index d22e255ba..bcca3df89 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClientTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedFeignBlockingLoadBalancerClientTest.java @@ -30,6 +30,6 @@ public class EnhancedFeignBlockingLoadBalancerClientTest { @Test public void testConstructor() { - assertThatCode(() -> new EnhancedFeignBlockingLoadBalancerClient(null, null, null, null)).doesNotThrowAnyException(); + assertThatCode(() -> new EnhancedFeignBlockingLoadBalancerClient(null, null, null)).doesNotThrowAnyException(); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/PolarisLoadBalancerFeignRequestTransformerTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedLoadBalancerClientAspectTest.java similarity index 88% rename from spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/PolarisLoadBalancerFeignRequestTransformerTest.java rename to spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedLoadBalancerClientAspectTest.java index 44e23c958..74839fef7 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/PolarisLoadBalancerFeignRequestTransformerTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/feign/EnhancedLoadBalancerClientAspectTest.java @@ -22,7 +22,7 @@ import com.tencent.cloud.common.metadata.MetadataContextHolder; import com.tencent.cloud.common.metadata.StaticMetadataManager; import com.tencent.cloud.common.metadata.config.MetadataLocalProperties; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; -import feign.Request; +import org.aspectj.lang.ProceedingJoinPoint; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; @@ -45,22 +45,18 @@ import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.mock; /** - * PolarisLoadBalancerFeignRequestTransformerTest. + * EnhancedLoadBalancerClientAspectTest. * * @author sean yu */ @ExtendWith(MockitoExtension.class) -public class PolarisLoadBalancerFeignRequestTransformerTest { +public class EnhancedLoadBalancerClientAspectTest { private static MockedStatic mockedApplicationContextAwareUtils; - - private PolarisLoadBalancerFeignRequestTransformer transformer = new PolarisLoadBalancerFeignRequestTransformer(); - @Mock - private Request clientRequest; + private ProceedingJoinPoint proceedingJoinPoint; - @Mock - private ServiceInstance serviceInstance; + private EnhancedLoadBalancerClientAspect aspect = new EnhancedLoadBalancerClientAspect(); @BeforeAll static void beforeAll() { @@ -88,7 +84,10 @@ public class PolarisLoadBalancerFeignRequestTransformerTest { @Test public void test() throws Throwable { - transformer.transformRequest(clientRequest, serviceInstance); + ServiceInstance serviceInstance = mock(ServiceInstance.class); + doReturn(serviceInstance).when(proceedingJoinPoint).proceed(); + aspect.invoke(proceedingJoinPoint); + aspect.pointcut(); assertThat(MetadataContextHolder.get().getLoadbalancerMetadata().get(LOAD_BALANCER_SERVICE_INSTANCE)).isEqualTo(serviceInstance); } } diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyMetadataProviderTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyMetadataProviderTest.java index ed94bb3cc..8a216977e 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyMetadataProviderTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyMetadataProviderTest.java @@ -43,7 +43,7 @@ public class AssemblyMetadataProviderTest { @Test public void testAssemblyMetadataProvider() { ServiceInstance serviceInstance = Mockito.mock(ServiceInstance.class); - Map metadata = new HashMap<>() {{ + Map metadata = new HashMap() {{ put("k", "v"); }}; doReturn(metadata).when(serviceInstance).getMetadata(); diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyResponseContextTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyResponseContextTest.java index c428e3a21..d3c96e899 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyResponseContextTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/plugin/AssemblyResponseContextTest.java @@ -18,8 +18,8 @@ package com.tencent.cloud.rpc.enhancement.plugin; import java.net.SocketTimeoutException; +import java.util.Arrays; import java.util.HashSet; -import java.util.List; import com.tencent.cloud.common.util.ApplicationContextAwareUtils; import com.tencent.cloud.rpc.enhancement.config.RpcEnhancementReporterProperties; @@ -86,7 +86,7 @@ public class AssemblyResponseContextTest { assertThat(assemblyResponseContext.getRetCode()).isEqualTo(HttpStatus.OK.value()); assertThat(assemblyResponseContext.getThrowable()).isEqualTo(null); assertThat(assemblyResponseContext.getRetStatus()).isEqualTo(RetStatus.RetSuccess); - assertThat(assemblyResponseContext.listHeaders()).isEqualTo(new HashSet<>(List.of("a"))); + assertThat(assemblyResponseContext.listHeaders()).isEqualTo(new HashSet<>(Arrays.asList("a"))); Throwable e = new SocketTimeoutException(); assemblyResponseContext = new AssemblyResponseContext(null, e); diff --git a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/webclient/EnhancedWebClientExchangeFilterFunctionTest.java b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/webclient/EnhancedWebClientExchangeFilterFunctionTest.java index eb00afd30..4801e4cb2 100644 --- a/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/webclient/EnhancedWebClientExchangeFilterFunctionTest.java +++ b/spring-cloud-tencent-rpc-enhancement/src/test/java/com/tencent/cloud/rpc/enhancement/webclient/EnhancedWebClientExchangeFilterFunctionTest.java @@ -43,7 +43,7 @@ import org.springframework.cloud.client.serviceregistry.Registration; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatusCode; +import org.springframework.http.HttpStatus; import org.springframework.web.reactive.function.client.ClientRequest; import org.springframework.web.reactive.function.client.ClientResponse; import org.springframework.web.reactive.function.client.ExchangeFunction; @@ -105,7 +105,7 @@ public class EnhancedWebClientExchangeFilterFunctionTest { doReturn(HttpMethod.GET).when(clientRequest).method(); ClientResponse.Headers headers = mock(ClientResponse.Headers.class); doReturn(headers).when(clientResponse).headers(); - doReturn(HttpStatusCode.valueOf(200)).when(clientResponse).statusCode(); + doReturn(HttpStatus.valueOf(200)).when(clientResponse).statusCode(); doReturn(Mono.just(clientResponse)).when(exchangeFunction).exchange(any()); EnhancedWebClientExchangeFilterFunction reporter = new EnhancedWebClientExchangeFilterFunction(new DefaultEnhancedPluginRunner(new ArrayList<>(), registration, null));