Fixes feign compilation errors
This commit is contained in:
@@ -29,6 +29,7 @@ import org.apache.commons.logging.LogFactory;
|
||||
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
|
||||
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties;
|
||||
import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
|
||||
|
||||
/**
|
||||
@@ -51,8 +52,8 @@ class TraceFeignBlockingLoadBalancerClient extends FeignBlockingLoadBalancerClie
|
||||
TracingFeignClient tracingFeignClient;
|
||||
|
||||
TraceFeignBlockingLoadBalancerClient(Client delegate, LoadBalancerClient loadBalancerClient,
|
||||
BeanFactory beanFactory) {
|
||||
super(delegate, loadBalancerClient);
|
||||
BeanFactory beanFactory, LoadBalancerProperties loadBalancerProperties) {
|
||||
super(delegate, loadBalancerClient, loadBalancerProperties);
|
||||
this.beanFactory = beanFactory;
|
||||
}
|
||||
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.aop.support.AopUtils;
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
|
||||
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties;
|
||||
import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
|
||||
import org.springframework.cloud.util.ProxyUtils;
|
||||
import org.springframework.util.ClassUtils;
|
||||
@@ -57,6 +58,8 @@ final class TraceFeignObjectWrapper {
|
||||
|
||||
private Object loadBalancerClient;
|
||||
|
||||
private Object loadBalancerProperties;
|
||||
|
||||
TraceFeignObjectWrapper(BeanFactory beanFactory) {
|
||||
this.beanFactory = beanFactory;
|
||||
}
|
||||
@@ -77,7 +80,8 @@ final class TraceFeignObjectWrapper {
|
||||
FeignBlockingLoadBalancerClient client = ProxyUtils.getTargetObject(bean);
|
||||
return new TraceFeignBlockingLoadBalancerClient(
|
||||
(Client) new TraceFeignObjectWrapper(this.beanFactory).wrap(client.getDelegate()),
|
||||
(LoadBalancerClient) loadBalancerClient(), this.beanFactory);
|
||||
(LoadBalancerClient) loadBalancerClient(), this.beanFactory,
|
||||
(LoadBalancerProperties) loadBalancerProperties());
|
||||
}
|
||||
else {
|
||||
FeignBlockingLoadBalancerClient client = ProxyUtils.getTargetObject(bean);
|
||||
@@ -90,7 +94,7 @@ final class TraceFeignObjectWrapper {
|
||||
log.warn(EXCEPTION_WARNING, e);
|
||||
}
|
||||
return new TraceFeignBlockingLoadBalancerClient(client, (LoadBalancerClient) loadBalancerClient(),
|
||||
this.beanFactory);
|
||||
this.beanFactory, (LoadBalancerProperties) loadBalancerProperties());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -101,4 +105,11 @@ final class TraceFeignObjectWrapper {
|
||||
return loadBalancerClient;
|
||||
}
|
||||
|
||||
private Object loadBalancerProperties() {
|
||||
if (loadBalancerProperties == null) {
|
||||
loadBalancerProperties = beanFactory.getBean(LoadBalancerProperties.class);
|
||||
}
|
||||
return loadBalancerProperties;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -25,6 +25,7 @@ import org.mockito.junit.jupiter.MockitoExtension;
|
||||
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
|
||||
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties;
|
||||
import org.springframework.cloud.loadbalancer.blocking.client.BlockingLoadBalancerClient;
|
||||
import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
|
||||
|
||||
@@ -64,7 +65,7 @@ public class TracingFeignObjectWrapperTests {
|
||||
when(beanFactory.getBean(LoadBalancerClient.class)).thenReturn(loadBalancerClient);
|
||||
|
||||
Object wrapped = traceFeignObjectWrapper
|
||||
.wrap(new FeignBlockingLoadBalancerClient(delegate, loadBalancerClient));
|
||||
.wrap(new FeignBlockingLoadBalancerClient(delegate, loadBalancerClient, new LoadBalancerProperties()));
|
||||
|
||||
assertThat(wrapped).isInstanceOf(TraceFeignBlockingLoadBalancerClient.class);
|
||||
}
|
||||
@@ -86,7 +87,7 @@ public class TracingFeignObjectWrapperTests {
|
||||
static class TestFeignBlockingLoadBalancerClient extends FeignBlockingLoadBalancerClient {
|
||||
|
||||
TestFeignBlockingLoadBalancerClient(Client delegate, BlockingLoadBalancerClient loadBalancerClient) {
|
||||
super(delegate, loadBalancerClient);
|
||||
super(delegate, loadBalancerClient, new LoadBalancerProperties());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -36,6 +36,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.cloud.client.loadbalancer.LoadBalancerClient;
|
||||
import org.springframework.cloud.client.loadbalancer.reactive.LoadBalancerProperties;
|
||||
import org.springframework.cloud.openfeign.EnableFeignClients;
|
||||
import org.springframework.cloud.openfeign.FeignClient;
|
||||
import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalancerClient;
|
||||
@@ -125,7 +126,7 @@ class Application {
|
||||
class MyBlockingClient extends FeignBlockingLoadBalancerClient {
|
||||
|
||||
MyBlockingClient(Client delegate, LoadBalancerClient loadBalancerClient) {
|
||||
super(delegate, loadBalancerClient);
|
||||
super(delegate, loadBalancerClient, new LoadBalancerProperties());
|
||||
}
|
||||
|
||||
boolean wasCalled;
|
||||
|
||||
Reference in New Issue
Block a user