diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRestClientRibbonCommandFactory.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRestClientRibbonCommandFactory.java index f95723c22..001fc0197 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRestClientRibbonCommandFactory.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceRestClientRibbonCommandFactory.java @@ -22,6 +22,7 @@ import java.net.URISyntaxException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.cloud.netflix.ribbon.SpringClientFactory; +import org.springframework.cloud.netflix.zuul.filters.ZuulProperties; import org.springframework.cloud.netflix.zuul.filters.route.RestClientRibbonCommand; import org.springframework.cloud.netflix.zuul.filters.route.RestClientRibbonCommandFactory; import org.springframework.cloud.netflix.zuul.filters.route.RibbonCommandContext; @@ -51,11 +52,13 @@ public class TraceRestClientRibbonCommandFactory extends RestClientRibbonCommand private ApplicationEventPublisher publisher; private final SpanAccessor accessor; + private final ZuulProperties zuulProperties; public TraceRestClientRibbonCommandFactory(SpringClientFactory clientFactory, - SpanAccessor accessor) { - super(clientFactory); + SpanAccessor accessor, ZuulProperties zuulProperties) { + super(clientFactory, zuulProperties); this.accessor = accessor; + this.zuulProperties = zuulProperties; } @Override @@ -72,7 +75,7 @@ public class TraceRestClientRibbonCommandFactory extends RestClientRibbonCommand return new TraceRestClientRibbonCommand(context.getServiceId(), restClient, getVerb(context.getVerb()), context.getUri(), context.getRetryable(), context.getHeaders(), context.getParams(), context.getRequestEntity(), - this.publisher, this.accessor); + this.publisher, this.accessor, this.zuulProperties); } catch (URISyntaxException e) { log.error("Exception occurred while trying to create the TraceRestClientRibbonCommand", e); @@ -91,10 +94,10 @@ public class TraceRestClientRibbonCommandFactory extends RestClientRibbonCommand HttpRequest.Verb verb, String uri, Boolean retryable, MultiValueMap headers, MultiValueMap params, InputStream requestEntity, - ApplicationEventPublisher publisher, SpanAccessor accessor) + ApplicationEventPublisher publisher, SpanAccessor accessor, ZuulProperties zuulProperties) throws URISyntaxException { super(commandKey, restClient, verb, uri, retryable, headers, params, - requestEntity); + requestEntity, zuulProperties); this.publisher = publisher; this.accessor = accessor; } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceZuulAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceZuulAutoConfiguration.java index e03dd7b9c..32f3ba572 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceZuulAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/zuul/TraceZuulAutoConfiguration.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.cloud.netflix.ribbon.SpringClientFactory; +import org.springframework.cloud.netflix.zuul.filters.ZuulProperties; import org.springframework.cloud.sleuth.SpanAccessor; import org.springframework.cloud.sleuth.Tracer; import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; @@ -53,8 +54,15 @@ public class TraceZuulAutoConfiguration { } @Bean - public TraceRestClientRibbonCommandFactory traceRestClientRibbonCommandFactory(SpringClientFactory factory, SpanAccessor accessor) { - return new TraceRestClientRibbonCommandFactory(factory, accessor); + @ConditionalOnMissingBean + public ZuulProperties zuulProperties() { + return new ZuulProperties(); + } + + @Bean + public TraceRestClientRibbonCommandFactory traceRestClientRibbonCommandFactory(SpringClientFactory factory, + SpanAccessor accessor, ZuulProperties zuulProperties) { + return new TraceRestClientRibbonCommandFactory(factory, accessor, zuulProperties); } @Bean