diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java index 5af2c9154..811ee683f 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/Span.java @@ -19,6 +19,8 @@ package org.springframework.cloud.sleuth; import com.fasterxml.jackson.annotation.JsonAutoDetect; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; +import org.springframework.util.Assert; +import org.springframework.util.StringUtils; import java.util.ArrayList; import java.util.Arrays; @@ -32,9 +34,6 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentLinkedQueue; -import org.springframework.util.Assert; -import org.springframework.util.StringUtils; - /** * Class for gathering and reporting statistics about a block of execution. *

@@ -171,7 +170,10 @@ public class Span implements SpanContext { * Creates a new span that still tracks tags and logs of the current span. This is * crucial when continuing spans since the changes in those collections done in the * continued span need to be reflected until the span gets closed. + * + * @deprecated - use {@link SpanBuilder} */ + @Deprecated public Span(Span current, Span savedSpan) { this.begin = current.getBegin(); this.end = current.getEnd(); @@ -191,21 +193,13 @@ public class Span implements SpanContext { this.savedSpan = savedSpan; } - /** - * @deprecated please use {@link SpanBuilder} - */ - @Deprecated - public Span(long begin, long end, String name, long traceId, List parents, + Span(long begin, long end, String name, long traceId, List parents, long spanId, boolean remote, boolean exportable, String processId) { this(begin, end, name, traceId, parents, spanId, remote, exportable, processId, null); } - /** - * @deprecated please use {@link SpanBuilder} - */ - @Deprecated - public Span(long begin, long end, String name, long traceId, List parents, + Span(long begin, long end, String name, long traceId, List parents, long spanId, boolean remote, boolean exportable, String processId, Span savedSpan) { this(new SpanBuilder() @@ -274,18 +268,6 @@ public class Span implements SpanContext { } } - /** - * Return the total amount of time elapsed since start was called, if running, or - * difference between stop and start - * - * @deprecated use {@link #getAccumulatedMicros()} as it is more precise. - */ - @Deprecated - @JsonIgnore - public synchronized long getAccumulatedMillis() { - return getAccumulatedMicros() / 1000; - } - /** * Return the total amount of time elapsed since start was called, if running, or * difference between stop and start, in microseconds. @@ -766,6 +748,9 @@ public class Span implements SpanContext { return this; } + /** + * Creates a {@link Span.SpanBuilder} from the {@link Span}. + */ public Span.SpanBuilder from(Span span) { return begin(span.begin).end(span.end).name(span.name) .traceIdHigh(span.traceIdHigh).traceId(span.traceId) @@ -774,6 +759,11 @@ public class Span implements SpanContext { .processId(span.processId).savedSpan(span.savedSpan); } + /** + * Builds a span. All collections lik baggage / tags / logs are *copied*, not continued. + * In other words if you add a tag to the input {@link Span}, the created span + * will not reflect that change. + */ public Span build() { return new Span(this); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceContinuingCallable.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceContinuingCallable.java deleted file mode 100644 index 8fc48f635..000000000 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceContinuingCallable.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright 2013-2017 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.sleuth.instrument.async; - -import java.util.concurrent.Callable; - -import org.springframework.cloud.sleuth.Span; -import org.springframework.cloud.sleuth.SpanNamer; -import org.springframework.cloud.sleuth.TraceCallable; -import org.springframework.cloud.sleuth.Tracer; - -/** - * Trace Callable that continues a span instead of creating a new one. Upon completion - * the span is not closed - it gets {@link Tracer#detach(Span) detached}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated as of 1.2 in favor of {@link SpanContinuingTraceCallable} - */ -@Deprecated -public class TraceContinuingCallable extends TraceCallable implements Callable { - - public TraceContinuingCallable(Tracer tracer, SpanNamer spanNamer, Callable delegate) { - super(tracer, spanNamer, delegate); - } - - @Override - protected Span startSpan() { - return getTracer().continueSpan(getParent()); - } - - @Override - protected void close(Span span) { - if (getTracer().isTracing()) { - getTracer().detach(span); - } - } -} diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/AbstractTraceChannelInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/AbstractTraceChannelInterceptor.java index 49b1dd62c..9a65485f7 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/AbstractTraceChannelInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/AbstractTraceChannelInterceptor.java @@ -1,12 +1,9 @@ package org.springframework.cloud.sleuth.instrument.messaging; -import java.lang.invoke.MethodHandles; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.BeanFactory; import org.springframework.cloud.sleuth.ErrorParser; -import org.springframework.cloud.sleuth.ExceptionMessageErrorParser; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanTextMap; import org.springframework.cloud.sleuth.TraceKeys; @@ -19,6 +16,8 @@ import org.springframework.messaging.support.ChannelInterceptorAdapter; import org.springframework.messaging.support.ExecutorChannelInterceptor; import org.springframework.util.ClassUtils; +import java.lang.invoke.MethodHandles; + /** * Abstraction over classes related to channel intercepting * @@ -46,17 +45,6 @@ abstract class AbstractTraceChannelInterceptor extends ChannelInterceptorAdapter private ErrorParser errorParser; private BeanFactory beanFactory; - @Deprecated - protected AbstractTraceChannelInterceptor(Tracer tracer, TraceKeys traceKeys, - MessagingSpanTextMapExtractor spanExtractor, - MessagingSpanTextMapInjector spanInjector) { - this.tracer = tracer; - this.traceKeys = traceKeys; - this.spanExtractor = spanExtractor; - this.spanInjector = spanInjector; - this.errorParser = new ExceptionMessageErrorParser(); - } - protected AbstractTraceChannelInterceptor(BeanFactory beanFactory) { this.beanFactory = beanFactory; } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/IntegrationTraceChannelInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/IntegrationTraceChannelInterceptor.java index fcbcb7438..1bdf18e4e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/IntegrationTraceChannelInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/IntegrationTraceChannelInterceptor.java @@ -17,8 +17,6 @@ package org.springframework.cloud.sleuth.instrument.messaging; import org.springframework.beans.factory.BeanFactory; -import org.springframework.cloud.sleuth.TraceKeys; -import org.springframework.cloud.sleuth.Tracer; import org.springframework.integration.channel.ChannelInterceptorAware; import org.springframework.integration.channel.interceptor.VetoCapableInterceptor; import org.springframework.messaging.support.ChannelInterceptor; @@ -29,14 +27,7 @@ import org.springframework.messaging.support.ChannelInterceptor; */ class IntegrationTraceChannelInterceptor extends TraceChannelInterceptor implements VetoCapableInterceptor { - @Deprecated - public IntegrationTraceChannelInterceptor(Tracer tracer, TraceKeys traceKeys, - MessagingSpanTextMapExtractor spanExtractor, - MessagingSpanTextMapInjector spanInjector) { - super(tracer, traceKeys, spanExtractor, spanInjector); - } - - public IntegrationTraceChannelInterceptor(BeanFactory beanFactory) { + IntegrationTraceChannelInterceptor(BeanFactory beanFactory) { super(beanFactory); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptor.java index 954dd5f0b..408a32481 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceChannelInterceptor.java @@ -19,8 +19,6 @@ package org.springframework.cloud.sleuth.instrument.messaging; import org.springframework.beans.factory.BeanFactory; import org.springframework.cloud.sleuth.Log; import org.springframework.cloud.sleuth.Span; -import org.springframework.cloud.sleuth.TraceKeys; -import org.springframework.cloud.sleuth.Tracer; import org.springframework.cloud.sleuth.sampler.NeverSampler; import org.springframework.messaging.Message; import org.springframework.messaging.MessageChannel; @@ -38,13 +36,6 @@ import org.springframework.messaging.support.MessageHeaderAccessor; */ public class TraceChannelInterceptor extends AbstractTraceChannelInterceptor { - @Deprecated - public TraceChannelInterceptor(Tracer tracer, TraceKeys traceKeys, - MessagingSpanTextMapExtractor spanExtractor, - MessagingSpanTextMapInjector spanInjector) { - super(tracer, traceKeys, spanExtractor, spanInjector); - } - public TraceChannelInterceptor(BeanFactory beanFactory) { super(beanFactory); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/websocket/TraceWebSocketAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/websocket/TraceWebSocketAutoConfiguration.java index 86c2ed4e2..e69b2c9fa 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/websocket/TraceWebSocketAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/websocket/TraceWebSocketAutoConfiguration.java @@ -1,5 +1,6 @@ package org.springframework.cloud.sleuth.instrument.messaging.websocket; +import org.springframework.beans.factory.BeanFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; @@ -36,6 +37,8 @@ import org.springframework.web.socket.config.annotation.StompEndpointRegistry; public class TraceWebSocketAutoConfiguration extends AbstractWebSocketMessageBrokerConfigurer { + @Autowired + BeanFactory beanFactory; @Autowired Tracer tracer; @Autowired @@ -52,13 +55,11 @@ public class TraceWebSocketAutoConfiguration @Override public void configureClientOutboundChannel(ChannelRegistration registration) { - registration.setInterceptors(new TraceChannelInterceptor(this.tracer, - this.traceKeys, this.spanExtractor, this.spanInjector)); + registration.setInterceptors(new TraceChannelInterceptor(this.beanFactory)); } @Override public void configureClientInboundChannel(ChannelRegistration registration) { - registration.setInterceptors(new TraceChannelInterceptor(this.tracer, - this.traceKeys, this.spanExtractor, this.spanInjector)); + registration.setInterceptors(new TraceChannelInterceptor(this.beanFactory)); } } \ No newline at end of file diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java index 2b0657581..d00bafdcd 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceFilter.java @@ -32,7 +32,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.BeanFactory; import org.springframework.cloud.sleuth.ErrorParser; -import org.springframework.cloud.sleuth.ExceptionMessageErrorParser; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanReporter; import org.springframework.cloud.sleuth.TraceKeys; @@ -91,12 +90,6 @@ public class TraceFilter extends GenericFilterBean { protected static final String TRACE_CLOSE_SPAN_REQUEST_ATTR = TraceFilter.class.getName() + ".CLOSE_SPAN"; - /** - * @deprecated please use {@link SleuthWebProperties#DEFAULT_SKIP_PATTERN} - */ - @Deprecated - public static final String DEFAULT_SKIP_PATTERN = SleuthWebProperties.DEFAULT_SKIP_PATTERN; - private Tracer tracer; private TraceKeys traceKeys; private Pattern skipPattern; @@ -108,27 +101,6 @@ public class TraceFilter extends GenericFilterBean { private UrlPathHelper urlPathHelper = new UrlPathHelper(); - @Deprecated - public TraceFilter(Tracer tracer, TraceKeys traceKeys, SpanReporter spanReporter, - HttpSpanExtractor spanExtractor, - HttpTraceKeysInjector httpTraceKeysInjector) { - this(tracer, traceKeys, Pattern.compile(SleuthWebProperties.DEFAULT_SKIP_PATTERN), spanReporter, - spanExtractor, httpTraceKeysInjector); - } - - @Deprecated - public TraceFilter(Tracer tracer, TraceKeys traceKeys, Pattern skipPattern, - SpanReporter spanReporter, HttpSpanExtractor spanExtractor, - HttpTraceKeysInjector httpTraceKeysInjector) { - this.tracer = tracer; - this.traceKeys = traceKeys; - this.skipPattern = skipPattern; - this.spanReporter = spanReporter; - this.spanExtractor = spanExtractor; - this.httpTraceKeysInjector = httpTraceKeysInjector; - this.errorParser = new ExceptionMessageErrorParser(); - } - public TraceFilter(BeanFactory beanFactory) { this(beanFactory, Pattern.compile(SleuthWebProperties.DEFAULT_SKIP_PATTERN)); } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java index 1468d84ff..24fa0137a 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAspect.java @@ -16,18 +16,12 @@ package org.springframework.cloud.sleuth.instrument.web; -import java.lang.reflect.Field; -import java.util.concurrent.Callable; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - import org.apache.commons.logging.Log; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Pointcut; import org.springframework.cloud.sleuth.ErrorParser; -import org.springframework.cloud.sleuth.ExceptionMessageErrorParser; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanNamer; import org.springframework.cloud.sleuth.TraceKeys; @@ -35,6 +29,11 @@ import org.springframework.cloud.sleuth.Tracer; import org.springframework.cloud.sleuth.instrument.async.SpanContinuingTraceCallable; import org.springframework.web.context.request.async.WebAsyncTask; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Field; +import java.util.concurrent.Callable; + /** * Aspect that adds tracing to *

@@ -79,14 +78,6 @@ public class TraceWebAspect { private final TraceKeys traceKeys; private final ErrorParser errorParser; - @Deprecated - public TraceWebAspect(Tracer tracer, SpanNamer spanNamer, TraceKeys traceKeys) { - this.tracer = tracer; - this.spanNamer = spanNamer; - this.traceKeys = traceKeys; - this.errorParser = new ExceptionMessageErrorParser(); - } - public TraceWebAspect(Tracer tracer, SpanNamer spanNamer, TraceKeys traceKeys, ErrorParser errorParser) { this.tracer = tracer; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceAsyncRestTemplate.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceAsyncRestTemplate.java index 2f042d422..b95e7e4f2 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceAsyncRestTemplate.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceAsyncRestTemplate.java @@ -16,16 +16,9 @@ package org.springframework.cloud.sleuth.instrument.web.client; -import java.lang.invoke.MethodHandles; -import java.net.URI; -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; -import java.util.concurrent.TimeoutException; - import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.springframework.cloud.sleuth.ErrorParser; -import org.springframework.cloud.sleuth.ExceptionMessageErrorParser; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.Tracer; import org.springframework.core.task.AsyncListenableTaskExecutor; @@ -42,6 +35,12 @@ import org.springframework.web.client.ResponseExtractor; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; +import java.lang.invoke.MethodHandles; +import java.net.URI; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; + /** * An {@link AsyncRestTemplate} that closes started spans when a response has been * successfully received. @@ -55,44 +54,6 @@ public class TraceAsyncRestTemplate extends AsyncRestTemplate { private final Tracer tracer; private final ErrorParser errorParser; - @Deprecated - public TraceAsyncRestTemplate(Tracer tracer) { - super(); - this.tracer = tracer; - this.errorParser = new ExceptionMessageErrorParser(); - } - - @Deprecated - public TraceAsyncRestTemplate(AsyncListenableTaskExecutor taskExecutor, Tracer tracer) { - super(taskExecutor); - this.tracer = tracer; - this.errorParser = new ExceptionMessageErrorParser(); - } - - @Deprecated - public TraceAsyncRestTemplate(AsyncClientHttpRequestFactory asyncRequestFactory, - Tracer tracer) { - super(asyncRequestFactory); - this.tracer = tracer; - this.errorParser = new ExceptionMessageErrorParser(); - } - - @Deprecated - public TraceAsyncRestTemplate(AsyncClientHttpRequestFactory asyncRequestFactory, - ClientHttpRequestFactory syncRequestFactory, Tracer tracer) { - super(asyncRequestFactory, syncRequestFactory); - this.tracer = tracer; - this.errorParser = new ExceptionMessageErrorParser(); - } - - @Deprecated - public TraceAsyncRestTemplate(AsyncClientHttpRequestFactory requestFactory, - RestTemplate restTemplate, Tracer tracer) { - super(requestFactory, restTemplate); - this.tracer = tracer; - this.errorParser = new ExceptionMessageErrorParser(); - } - public TraceAsyncRestTemplate(Tracer tracer, ErrorParser errorParser) { super(); this.tracer = tracer; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java index cd26a72aa..afadd5d75 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceRestTemplateInterceptor.java @@ -16,10 +16,7 @@ package org.springframework.cloud.sleuth.instrument.web.client; -import java.io.IOException; - import org.springframework.cloud.sleuth.ErrorParser; -import org.springframework.cloud.sleuth.ExceptionMessageErrorParser; import org.springframework.cloud.sleuth.Tracer; import org.springframework.cloud.sleuth.instrument.web.HttpSpanInjector; import org.springframework.cloud.sleuth.instrument.web.HttpTraceKeysInjector; @@ -28,6 +25,8 @@ import org.springframework.http.client.ClientHttpRequestExecution; import org.springframework.http.client.ClientHttpRequestInterceptor; import org.springframework.http.client.ClientHttpResponse; +import java.io.IOException; + /** * Interceptor that verifies whether the trance and span id has been set on the request * and sets them if one or both of them are missing. @@ -43,13 +42,6 @@ public class TraceRestTemplateInterceptor extends AbstractTraceHttpRequestInterc private final ErrorParser errorParser; - @Deprecated - public TraceRestTemplateInterceptor(Tracer tracer, HttpSpanInjector spanInjector, - HttpTraceKeysInjector httpTraceKeysInjector) { - super(tracer, spanInjector, httpTraceKeysInjector); - this.errorParser = new ExceptionMessageErrorParser(); - } - public TraceRestTemplateInterceptor(Tracer tracer, HttpSpanInjector spanInjector, HttpTraceKeysInjector httpTraceKeysInjector, ErrorParser errorParser) { super(tracer, spanInjector, httpTraceKeysInjector); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebAsyncClientAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebAsyncClientAutoConfiguration.java index 7d58c9130..8b067730d 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebAsyncClientAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebAsyncClientAutoConfiguration.java @@ -22,6 +22,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; +import org.springframework.cloud.sleuth.ErrorParser; import org.springframework.cloud.sleuth.instrument.web.HttpSpanInjector; import org.springframework.cloud.sleuth.Tracer; import org.springframework.cloud.sleuth.instrument.web.HttpTraceKeysInjector; @@ -86,8 +87,8 @@ public class TraceWebAsyncClientAutoConfiguration { @Bean @ConditionalOnMissingBean @ConditionalOnProperty(value = "spring.sleuth.web.async.client.template.enabled", matchIfMissing = true) - public AsyncRestTemplate traceAsyncRestTemplate() { - return new TraceAsyncRestTemplate(traceAsyncClientHttpRequestFactory(), this.tracer); + public AsyncRestTemplate traceAsyncRestTemplate(ErrorParser errorParser) { + return new TraceAsyncRestTemplate(traceAsyncClientHttpRequestFactory(), this.tracer, errorParser); } } diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTracer.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTracer.java index 2fd4849cb..76546d703 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTracer.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/trace/DefaultTracer.java @@ -44,8 +44,6 @@ public class DefaultTracer implements Tracer { private static final Log log = LogFactory.getLog(MethodHandles.lookup().lookupClass()); - private static final int MAX_CHARS_IN_SPAN_NAME = 50; - private final Sampler defaultSampler; private final Random random; @@ -60,18 +58,6 @@ public class DefaultTracer implements Tracer { private final boolean traceId128; - @Deprecated - public DefaultTracer(Sampler defaultSampler, Random random, SpanNamer spanNamer, - SpanLogger spanLogger, SpanReporter spanReporter) { - this(defaultSampler, random, spanNamer, spanLogger, spanReporter, false); - } - - @Deprecated - public DefaultTracer(Sampler defaultSampler, Random random, SpanNamer spanNamer, - SpanLogger spanLogger, SpanReporter spanReporter, boolean traceId128) { - this(defaultSampler, random, spanNamer, spanLogger, spanReporter, traceId128, null); - } - public DefaultTracer(Sampler defaultSampler, Random random, SpanNamer spanNamer, SpanLogger spanLogger, SpanReporter spanReporter, TraceKeys traceKeys) { this(defaultSampler, random, spanNamer, spanLogger, spanReporter, false, traceKeys); diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanTests.java index db94a01ee..1fd8ffd52 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanTests.java @@ -18,14 +18,13 @@ package org.springframework.cloud.sleuth; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.Test; import java.io.IOException; import java.util.concurrent.atomic.AtomicLong; -import org.junit.Test; - -import static org.assertj.core.api.Assertions.assertThat; -import static org.assertj.core.api.BDDAssertions.then; +import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.assertThat; +import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.then; /** * @author Marcin Grzejszczak @@ -263,6 +262,17 @@ public class SpanTests { assertThat(builtSpan).isEqualTo(span); } + @Test + public void should_build_a_continued_span_from_provided_span() throws IOException { + Span span = builder().tag("foo", "bar").build(); + Span savedSpan = builder().tag("foo2", "bar2").build(); + Span builtSpan = new Span(span, savedSpan); + + span.tag("foo2", "bar2"); + + assertThat(builtSpan).isEqualTo(span); + } + @Test public void should_convert_a_span_to_builder() throws IOException { Span.SpanBuilder spanBuilder = builder(); diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/MultipleAsyncRestTemplateTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/MultipleAsyncRestTemplateTests.java index 3a116de77..61a8a43a0 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/MultipleAsyncRestTemplateTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/async/MultipleAsyncRestTemplateTests.java @@ -27,6 +27,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.cloud.sleuth.ErrorParser; import org.springframework.cloud.sleuth.Tracer; import org.springframework.cloud.sleuth.instrument.web.HttpSpanInjector; import org.springframework.cloud.sleuth.instrument.web.HttpTraceKeysInjector; @@ -81,8 +82,8 @@ public class MultipleAsyncRestTemplateTests { @Bean(name = "customAsyncRestTemplate") public AsyncRestTemplate traceAsyncRestTemplate(@Qualifier("customHttpRequestFactoryWrapper") - TraceAsyncClientHttpRequestFactoryWrapper wrapper) { - return new TraceAsyncRestTemplate(wrapper, this.tracer); + TraceAsyncClientHttpRequestFactoryWrapper wrapper, ErrorParser errorParser) { + return new TraceAsyncRestTemplate(wrapper, this.tracer, errorParser); } @Bean(name = "customHttpRequestFactoryWrapper") diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java index f3eb52910..603c2aea7 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/hystrix/TraceCommandTests.java @@ -16,8 +16,11 @@ package org.springframework.cloud.sleuth.instrument.hystrix; -import java.util.Random; - +import com.netflix.hystrix.HystrixCommand; +import com.netflix.hystrix.HystrixCommandKey; +import com.netflix.hystrix.HystrixCommandProperties; +import com.netflix.hystrix.HystrixThreadPoolProperties; +import com.netflix.hystrix.strategy.HystrixPlugins; import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -31,11 +34,7 @@ import org.springframework.cloud.sleuth.sampler.AlwaysSampler; import org.springframework.cloud.sleuth.trace.DefaultTracer; import org.springframework.cloud.sleuth.trace.TestSpanContextHolder; -import com.netflix.hystrix.HystrixCommand; -import com.netflix.hystrix.HystrixCommandKey; -import com.netflix.hystrix.HystrixCommandProperties; -import com.netflix.hystrix.HystrixThreadPoolProperties; -import com.netflix.hystrix.strategy.HystrixPlugins; +import java.util.Random; import static com.netflix.hystrix.HystrixCommand.Setter.withGroupKey; import static com.netflix.hystrix.HystrixCommandGroupKey.Factory.asKey; @@ -99,7 +98,7 @@ public class TraceCommandTests { @Test public void should_pass_tracing_information_when_using_Hystrix_commands() { Tracer tracer = new DefaultTracer(new AlwaysSampler(), new Random(), - new DefaultSpanNamer(), new NoOpSpanLogger(), new NoOpSpanReporter()); + new DefaultSpanNamer(), new NoOpSpanLogger(), new NoOpSpanReporter(), new TraceKeys()); TraceKeys traceKeys = new TraceKeys(); HystrixCommand.Setter setter = withGroupKey(asKey("group")) .andCommandKey(HystrixCommandKey.Factory.asKey("command")); diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java index 50cee09dc..59375449c 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterTests.java @@ -16,11 +16,6 @@ package org.springframework.cloud.sleuth.instrument.web; -import java.util.ArrayList; -import java.util.Optional; -import java.util.Random; -import java.util.regex.Pattern; - import org.junit.After; import org.junit.Before; import org.junit.Test; @@ -53,6 +48,11 @@ import org.springframework.mock.web.MockHttpServletResponse; import org.springframework.mock.web.MockServletContext; import org.springframework.test.web.servlet.request.MockHttpServletRequestBuilder; +import java.util.ArrayList; +import java.util.Optional; +import java.util.Random; +import java.util.regex.Pattern; + import static org.junit.Assert.assertEquals; import static org.mockito.MockitoAnnotations.initMocks; import static org.springframework.cloud.sleuth.assertions.SleuthAssertions.assertThat; @@ -83,6 +83,7 @@ public class TraceFilterTests { private MockHttpServletResponse response; private MockFilterChain filterChain; private Sampler sampler = new AlwaysSampler(); + BeanFactory beanFactory = Mockito.mock(BeanFactory.class); @Before public void init() { @@ -260,8 +261,8 @@ public class TraceFilterTests { public void ensuresThatParentSpanIsStoppedWhenReported() throws Exception { this.request = builder().header(Span.SPAN_ID_NAME, PARENT_ID) .header(Span.TRACE_ID_NAME, 20L).buildRequest(new MockServletContext()); - TraceFilter filter = new TraceFilter(this.tracer, this.traceKeys, spanIsStoppedVeryfingReporter(), - this.spanExtractor, this.httpTraceKeysInjector); + TraceFilter filter = new TraceFilter(beanFactory()); + BDDMockito.given(beanFactory.getBean(SpanReporter.class)).willReturn(spanIsStoppedVeryfingReporter()); filter.doFilter(this.request, this.response, this.filterChain); } @@ -483,7 +484,6 @@ public class TraceFilterTests { } private BeanFactory beanFactory() { - BeanFactory beanFactory = Mockito.mock(BeanFactory.class); BDDMockito.given(beanFactory.getBean(Tracer.class)).willReturn(this.tracer); BDDMockito.given(beanFactory.getBean(TraceKeys.class)).willReturn(this.traceKeys); BDDMockito.given(beanFactory.getBean(HttpSpanExtractor.class)).willReturn(this.spanExtractor); diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/trace/DefaultTracerTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/trace/DefaultTracerTests.java index 98b666289..c6a051aaf 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/trace/DefaultTracerTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/trace/DefaultTracerTests.java @@ -16,10 +16,6 @@ package org.springframework.cloud.sleuth.trace; -import java.util.ArrayList; -import java.util.List; -import java.util.Random; - import org.junit.After; import org.junit.Before; import org.junit.Rule; @@ -37,6 +33,10 @@ import org.springframework.cloud.sleuth.log.SpanLogger; import org.springframework.cloud.sleuth.sampler.AlwaysSampler; import org.springframework.cloud.sleuth.sampler.NeverSampler; +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.times; @@ -245,7 +245,7 @@ public class DefaultTracerTests { @Test public void shouldNotProduceAWarningMessageWhenThereIsNoSpanInContextAndWeDetachASpan() { DefaultTracer tracer = new DefaultTracer(new AlwaysSampler(), new Random(), - this.spanNamer, this.spanLogger, this.spanReporter); + this.spanNamer, this.spanLogger, this.spanReporter, new TraceKeys()); Span span = Span.builder().name("foo").traceId(1L).spanId(1L).build(); Span child = tracer.detach(span); diff --git a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/DiscoveryClientHostLocator.java b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/DiscoveryClientHostLocator.java index 172c80eb0..85ed39554 100644 --- a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/DiscoveryClientHostLocator.java +++ b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/DiscoveryClientHostLocator.java @@ -38,11 +38,6 @@ public class DiscoveryClientHostLocator implements HostLocator { private final DiscoveryClient client; private final ZipkinProperties zipkinProperties; - @Deprecated - public DiscoveryClientHostLocator(DiscoveryClient client) { - this(client, new ZipkinProperties()); - } - public DiscoveryClientHostLocator(DiscoveryClient client, ZipkinProperties zipkinProperties) { this.client = client; Assert.notNull(this.client, "client"); diff --git a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java index 2bc0c1c3b..39e5fef6e 100644 --- a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java +++ b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocator.java @@ -53,11 +53,6 @@ public class ServerPropertiesHostLocator implements HostLocator { private final ZipkinProperties zipkinProperties; private Integer port; // Lazy assigned - @Deprecated - public ServerPropertiesHostLocator(ServerProperties serverProperties, String appName) { - this(serverProperties, appName, new ZipkinProperties(),null); - } - public ServerPropertiesHostLocator(ServerProperties serverProperties, String appName, ZipkinProperties zipkinProperties, InetUtils inetUtils) { this.serverProperties = serverProperties; diff --git a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/StreamSpanReporter.java b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/StreamSpanReporter.java index 1c3f49910..b6a6ec921 100644 --- a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/StreamSpanReporter.java +++ b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/StreamSpanReporter.java @@ -16,19 +16,9 @@ package org.springframework.cloud.sleuth.stream; -import java.lang.invoke.MethodHandles; -import java.util.Arrays; -import java.util.Collections; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.concurrent.BlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; - import org.apache.commons.logging.LogFactory; import org.springframework.cloud.commons.util.IdUtils; import org.springframework.cloud.sleuth.Log; -import org.springframework.cloud.sleuth.NoOpSpanAdjuster; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanAdjuster; import org.springframework.cloud.sleuth.SpanReporter; @@ -38,6 +28,14 @@ import org.springframework.integration.annotation.InboundChannelAdapter; import org.springframework.integration.annotation.MessageEndpoint; import org.springframework.integration.annotation.Poller; +import java.lang.invoke.MethodHandles; +import java.util.Arrays; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.BlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + /** * A message source for spans. Also handles RPC flavoured annotations. * @@ -66,18 +64,6 @@ public class StreamSpanReporter implements SpanReporter { private final Environment environment; private final List spanAdjusters; - @Deprecated - public StreamSpanReporter(HostLocator endpointLocator, - SpanMetricReporter spanMetricReporter) { - this(endpointLocator, spanMetricReporter, null); - } - - @Deprecated - public StreamSpanReporter(HostLocator endpointLocator, - SpanMetricReporter spanMetricReporter, Environment environment) { - this(endpointLocator, spanMetricReporter, environment, Collections.singletonList(new NoOpSpanAdjuster())); - } - public StreamSpanReporter(HostLocator endpointLocator, SpanMetricReporter spanMetricReporter, Environment environment, List spanAdjusters) { this.endpointLocator = endpointLocator; diff --git a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocatorTests.java b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocatorTests.java index 6c3cc0ae9..b1d314824 100644 --- a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocatorTests.java +++ b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/ServerPropertiesHostLocatorTests.java @@ -16,10 +16,6 @@ package org.springframework.cloud.sleuth.stream; -import java.net.InetAddress; -import java.net.UnknownHostException; -import java.util.Collections; - import org.junit.Test; import org.mockito.Mockito; import org.springframework.boot.autoconfigure.web.ServerProperties; @@ -27,14 +23,16 @@ import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.commons.util.InetUtilsProperties; import org.springframework.cloud.sleuth.Span; +import java.net.InetAddress; +import java.net.UnknownHostException; + import static org.assertj.core.api.Assertions.assertThat; public class ServerPropertiesHostLocatorTests { public static final byte[] ADR1234 = { 1, 2, 3, 4 }; - Span span = new Span(1, 3, "http:name", 1L, Collections.emptyList(), 2L, true, true, - "process"); + Span span = Span.builder().begin(1).end(3).name("http:name").traceId(1L).spanId(2L).remote(true).exportable(true).processId("process").build(); @Test public void portDefaultsTo8080() throws UnknownHostException { diff --git a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanReporterTests.java b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanReporterTests.java index c618eb017..bbe82940a 100644 --- a/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanReporterTests.java +++ b/spring-cloud-sleuth-stream/src/test/java/org/springframework/cloud/sleuth/stream/StreamSpanReporterTests.java @@ -16,11 +16,6 @@ package org.springframework.cloud.sleuth.stream; -import java.util.Collections; -import java.util.Map; -import java.util.concurrent.ArrayBlockingQueue; -import java.util.concurrent.LinkedBlockingQueue; - import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; @@ -29,6 +24,12 @@ import org.springframework.cloud.sleuth.SpanAdjuster; import org.springframework.cloud.sleuth.metric.SpanMetricReporter; import org.springframework.mock.env.MockEnvironment; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Map; +import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.LinkedBlockingQueue; + import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.BDDMockito.then; @@ -44,7 +45,8 @@ public class StreamSpanReporterTests { @Before public void setup() { - this.reporter = new StreamSpanReporter(this.endpointLocator, this.spanMetricReporter, this.mockEnvironment); + this.reporter = new StreamSpanReporter(this.endpointLocator, this.spanMetricReporter, + this.mockEnvironment, new ArrayList<>()); } @Test @@ -79,7 +81,8 @@ public class StreamSpanReporterTests { @Test @SuppressWarnings("unchecked") public void should_not_append_server_serviceid_when_span_has_rpc_event_and_there_is_no_environment() throws Exception { - this.reporter = new StreamSpanReporter(this.endpointLocator, this.spanMetricReporter, null); + this.reporter = new StreamSpanReporter(this.endpointLocator, this.spanMetricReporter, + null, new ArrayList<>()); LinkedBlockingQueue queue = new LinkedBlockingQueue<>(1000); this.reporter.setQueue(queue); Span span = Span.builder().name("bar").exportable(true).build(); diff --git a/spring-cloud-sleuth-zipkin-stream/src/test/java/org/springframework/cloud/sleuth/zipkin/stream/ZipkinMessageListenerTests.java b/spring-cloud-sleuth-zipkin-stream/src/test/java/org/springframework/cloud/sleuth/zipkin/stream/ZipkinMessageListenerTests.java index 31d94b3ec..d41eebfe1 100644 --- a/spring-cloud-sleuth-zipkin-stream/src/test/java/org/springframework/cloud/sleuth/zipkin/stream/ZipkinMessageListenerTests.java +++ b/spring-cloud-sleuth-zipkin-stream/src/test/java/org/springframework/cloud/sleuth/zipkin/stream/ZipkinMessageListenerTests.java @@ -16,7 +16,6 @@ package org.springframework.cloud.sleuth.zipkin.stream; -import java.util.Collections; import org.junit.Test; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.stream.Host; @@ -26,8 +25,8 @@ import zipkin.Endpoint; import static org.assertj.core.api.Assertions.assertThat; public class ZipkinMessageListenerTests { - Span span = new Span(1, 3, "http:name", 1L, Collections.emptyList(), 2L, true, true, - "process"); + Span span = Span.builder().begin(1).end(3).name("http:name").traceId(1L).spanId(2L).remote(true) + .exportable(true).processId("process").build(); Host host = new Host("myservice", "1.2.3.4", 8080); Endpoint endpoint = Endpoint.builder() .serviceName("myservice") @@ -54,8 +53,8 @@ public class ZipkinMessageListenerTests { /** Sleuth timestamps are millisecond granularity while zipkin is microsecond. */ @Test public void convertsTimestampAndDurationToMicroseconds() { - Span span = new Span(1, 3, "http:name", 1L, Collections.emptyList(), 2L, false, true, - "process"); + Span span = Span.builder().begin(1).end(3).name("http:name").traceId(1L).spanId(2L).remote(false) + .exportable(true).processId("process").build(); long start = System.currentTimeMillis(); span.logEvent("hystrix/retry"); // System.currentTimeMillis diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/DiscoveryClientEndpointLocator.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/DiscoveryClientEndpointLocator.java index 0cd49850a..a09a96966 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/DiscoveryClientEndpointLocator.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/DiscoveryClientEndpointLocator.java @@ -43,11 +43,6 @@ public class DiscoveryClientEndpointLocator implements EndpointLocator { private final DiscoveryClient client; private final ZipkinProperties zipkinProperties; - @Deprecated - public DiscoveryClientEndpointLocator(DiscoveryClient client) { - this(client, new ZipkinProperties()); - } - public DiscoveryClientEndpointLocator(DiscoveryClient client, ZipkinProperties zipkinProperties) { this.client = client; diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java index abc481d95..5f543095d 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ServerPropertiesEndpointLocator.java @@ -53,11 +53,6 @@ public class ServerPropertiesEndpointLocator implements EndpointLocator { private final ZipkinProperties zipkinProperties; private Integer port; - @Deprecated - public ServerPropertiesEndpointLocator(ServerProperties serverProperties,String appName) { - this(serverProperties,appName,new ZipkinProperties(), null); - } - public ServerPropertiesEndpointLocator(ServerProperties serverProperties, String appName, ZipkinProperties zipkinProperties, InetUtils inetUtils) { this.serverProperties = serverProperties; diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java index a14722766..db8c630eb 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListener.java @@ -16,6 +16,13 @@ package org.springframework.cloud.sleuth.zipkin; +import org.springframework.cloud.commons.util.IdUtils; +import org.springframework.cloud.sleuth.Log; +import org.springframework.cloud.sleuth.Span; +import org.springframework.cloud.sleuth.SpanAdjuster; +import org.springframework.cloud.sleuth.SpanReporter; +import org.springframework.core.env.Environment; +import org.springframework.util.StringUtils; import zipkin.Annotation; import zipkin.BinaryAnnotation; import zipkin.Constants; @@ -23,19 +30,9 @@ import zipkin.Endpoint; import java.nio.charset.Charset; import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Map; -import org.springframework.cloud.commons.util.IdUtils; -import org.springframework.cloud.sleuth.Log; -import org.springframework.cloud.sleuth.NoOpSpanAdjuster; -import org.springframework.cloud.sleuth.Span; -import org.springframework.cloud.sleuth.SpanAdjuster; -import org.springframework.cloud.sleuth.SpanReporter; -import org.springframework.core.env.Environment; -import org.springframework.util.StringUtils; - /** * Listener of Sleuth events. Reports to Zipkin via {@link ZipkinSpanReporter}. * @@ -65,17 +62,6 @@ public class ZipkinSpanListener implements SpanReporter { // Visible for testing EndpointLocator endpointLocator; - @Deprecated - public ZipkinSpanListener(ZipkinSpanReporter reporter, EndpointLocator endpointLocator) { - this(reporter, endpointLocator, null); - } - - @Deprecated - public ZipkinSpanListener(ZipkinSpanReporter reporter, EndpointLocator endpointLocator, - Environment environment) { - this(reporter, endpointLocator, environment, Collections.singletonList(new NoOpSpanAdjuster())); - } - public ZipkinSpanListener(ZipkinSpanReporter reporter, EndpointLocator endpointLocator, Environment environment, List spanAdjusters) { this.reporter = reporter; diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java index 6bc6cd227..14d808fd9 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/HttpZipkinSpanReporterTest.java @@ -1,8 +1,5 @@ package org.springframework.cloud.sleuth.zipkin; -import java.util.Random; -import java.util.concurrent.atomic.AtomicReference; - import org.junit.Rule; import org.junit.Test; import org.springframework.boot.autoconfigure.web.ServerProperties; @@ -18,11 +15,14 @@ import org.springframework.cloud.sleuth.sampler.AlwaysSampler; import org.springframework.cloud.sleuth.trace.DefaultTracer; import org.springframework.cloud.sleuth.util.ExceptionUtils; import org.springframework.web.client.RestTemplate; - import zipkin.Span; import zipkin.junit.HttpFailure; import zipkin.junit.ZipkinRule; +import java.util.ArrayList; +import java.util.Random; +import java.util.concurrent.atomic.AtomicReference; + import static java.util.Arrays.asList; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.BDDAssertions.then; @@ -131,7 +131,8 @@ public class HttpZipkinSpanReporterTest { Tracer tracer = new DefaultTracer(new AlwaysSampler(), new Random(), new DefaultSpanNamer(), new NoOpSpanLogger(), new ZipkinSpanListener(receivedSpan::set, new ServerPropertiesEndpointLocator(new ServerProperties(), "foo", - new ZipkinProperties(), new InetUtils(new InetUtilsProperties()))), new TraceKeys()); + new ZipkinProperties(), new InetUtils(new InetUtilsProperties())), + null, new ArrayList<>()), new TraceKeys()); // tag::service_name[] org.springframework.cloud.sleuth.Span newSpan = tracer.createSpan("redis"); try { diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java index c14d60aad..a677b809d 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin/ZipkinSpanListenerTests.java @@ -284,7 +284,7 @@ public class ZipkinSpanListenerTests { public void shouldNotAddAnyServiceIdTagWhenSpanContainsRpcEventAndThereIsNoEnvironment() { this.parent.logEvent(Span.CLIENT_RECV); ZipkinSpanListener spanListener = new ZipkinSpanListener(this.spanReporter, - this.endpointLocator, null); + this.endpointLocator, null, new ArrayList<>()); zipkin.Span result = spanListener.convert(this.parent);