Skip to content

Commit 8a865d5

Browse files
authored
Remove support for LoadBalancerFeignClient (#324)
LoadBalancerFeignClient was removed in spring-cloud-openfeign, so this code might raise errors when used with newer spring versions
1 parent 76fc7de commit 8a865d5

File tree

4 files changed

+8
-38
lines changed

4 files changed

+8
-38
lines changed

instrument-starters/opentracing-spring-cloud-feign-starter/src/main/java/io/opentracing/contrib/spring/cloud/feign/FeignContextBeanPostProcessor.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,20 +27,17 @@
2727
public class FeignContextBeanPostProcessor implements BeanPostProcessor {
2828

2929
private Tracer tracer;
30-
private BeanFactory beanFactory;
3130
private List<FeignSpanDecorator> spanDecorators;
3231

33-
FeignContextBeanPostProcessor(Tracer tracer, BeanFactory beanFactory,
34-
List<FeignSpanDecorator> spanDecorators) {
32+
FeignContextBeanPostProcessor(Tracer tracer, List<FeignSpanDecorator> spanDecorators) {
3533
this.tracer = tracer;
36-
this.beanFactory = beanFactory;
3734
this.spanDecorators = spanDecorators;
3835
}
3936

4037
@Override
4138
public Object postProcessBeforeInitialization(Object bean, String name) throws BeansException {
4239
if (bean instanceof FeignContext && !(bean instanceof TraceFeignContext)) {
43-
return new TraceFeignContext(tracer, (FeignContext) bean, beanFactory, spanDecorators);
40+
return new TraceFeignContext(tracer, (FeignContext) bean, spanDecorators);
4441
}
4542
return bean;
4643
}

instrument-starters/opentracing-spring-cloud-feign-starter/src/main/java/io/opentracing/contrib/spring/cloud/feign/FeignTracingAutoConfiguration.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ public class FeignTracingAutoConfiguration {
5858

5959
@Bean
6060
@ConditionalOnClass(name = "org.springframework.cloud.openfeign.FeignContext")
61-
FeignContextBeanPostProcessor feignContextBeanPostProcessor(BeanFactory beanFactory) {
62-
return new FeignContextBeanPostProcessor(tracer, beanFactory, spanDecorators);
61+
FeignContextBeanPostProcessor feignContextBeanPostProcessor() {
62+
return new FeignContextBeanPostProcessor(tracer, spanDecorators);
6363
}
6464

6565
@Configuration

instrument-starters/opentracing-spring-cloud-feign-starter/src/main/java/io/opentracing/contrib/spring/cloud/feign/TraceFeignContext.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import java.util.HashMap;
2020
import java.util.List;
2121
import java.util.Map;
22-
import org.springframework.beans.factory.BeanFactory;
2322
import org.springframework.cloud.openfeign.FeignContext;
2423

2524
/**
@@ -30,10 +29,9 @@ class TraceFeignContext extends FeignContext {
3029
private final FeignContext delegate;
3130
private final TracedFeignBeanFactory tracedFeignBeanFactory;
3231

33-
TraceFeignContext(Tracer tracer, FeignContext delegate, BeanFactory beanFactory,
34-
List<FeignSpanDecorator> spanDecorators) {
32+
TraceFeignContext(Tracer tracer, FeignContext delegate, List<FeignSpanDecorator> spanDecorators) {
3533
this.delegate = delegate;
36-
this.tracedFeignBeanFactory = new TracedFeignBeanFactory(tracer, beanFactory, spanDecorators);
34+
this.tracedFeignBeanFactory = new TracedFeignBeanFactory(tracer, spanDecorators);
3735
}
3836

3937
@SuppressWarnings("unchecked")

instrument-starters/opentracing-spring-cloud-feign-starter/src/main/java/io/opentracing/contrib/spring/cloud/feign/TracedFeignBeanFactory.java

Lines changed: 2 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,36 +18,24 @@
1818
import feign.opentracing.TracingClient;
1919
import io.opentracing.Tracer;
2020
import java.util.List;
21-
import org.springframework.beans.factory.BeanFactory;
22-
import org.springframework.cloud.netflix.ribbon.SpringClientFactory;
23-
import org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory;
24-
import org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient;
2521
import org.springframework.context.annotation.Lazy;
2622

2723
class TracedFeignBeanFactory {
2824

2925
private final Tracer tracer;
30-
private final BeanFactory beanFactory;
3126
private final List<FeignSpanDecorator> spanDecorators;
3227

33-
public TracedFeignBeanFactory(Tracer tracer, BeanFactory beanFactory, @Lazy List<FeignSpanDecorator> spanDecorators) {
28+
public TracedFeignBeanFactory(Tracer tracer, @Lazy List<FeignSpanDecorator> spanDecorators) {
3429
this.tracer = tracer;
35-
this.beanFactory = beanFactory;
3630
this.spanDecorators = spanDecorators;
3731
}
3832

3933
public Object from(Object bean) {
40-
if (bean instanceof TracingClient || bean instanceof LoadBalancedTracedFeign) {
34+
if (bean instanceof TracingClient) {
4135
return bean;
4236
}
4337

4438
if (bean instanceof Client) {
45-
if (bean instanceof LoadBalancerFeignClient) {
46-
return new LoadBalancedTracedFeign(
47-
buildTracingClient(((LoadBalancerFeignClient) bean).getDelegate(), tracer),
48-
beanFactory.getBean(CachingSpringLoadBalancerFactory.class),
49-
beanFactory.getBean(SpringClientFactory.class));
50-
}
5139
return buildTracingClient((Client) bean, tracer);
5240
}
5341

@@ -60,17 +48,4 @@ private TracingClient buildTracingClient(Client delegate, Tracer tracer) {
6048
.withFeignSpanDecorators(spanDecorators)
6149
.build();
6250
}
63-
64-
/**
65-
* Needed for cast in {@link org.springframework.cloud.openfeign.FeignClientFactoryBean}
66-
*/
67-
static class LoadBalancedTracedFeign extends LoadBalancerFeignClient {
68-
69-
public LoadBalancedTracedFeign(Client delegate,
70-
CachingSpringLoadBalancerFactory lbClientFactory,
71-
SpringClientFactory clientFactory) {
72-
super(delegate, lbClientFactory, clientFactory);
73-
}
74-
}
75-
7651
}

0 commit comments

Comments
 (0)