From 0290437330f785bde3271d4e4d93bd41cb2d1b17 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Fri, 15 May 2020 20:26:19 +0800 Subject: [PATCH 1/4] Makes it more clear what the timeout code is doing and backfills tests (#1636) I was surprised to see an executor service created just to make a time limiter. This does it more simply and backfills the missing tests. --- .../zipkin2/ZipkinAutoConfiguration.java | 60 +++++++++------ .../zipkin2/ZipkinAutoConfigurationTests.java | 76 +++++++++++++++++++ 2 files changed, 111 insertions(+), 25 deletions(-) diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java index df110882c..6d829b084 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java @@ -16,11 +16,8 @@ package org.springframework.cloud.sleuth.zipkin2; -import java.util.concurrent.Callable; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; +import java.util.concurrent.TimeoutException; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -92,43 +89,56 @@ public class ZipkinAutoConfiguration { @ConditionalOnMissingBean(name = REPORTER_BEAN_NAME) public Reporter reporter(ReporterMetrics reporterMetrics, ZipkinProperties zipkin, @Qualifier(SENDER_BEAN_NAME) Sender sender) { + CheckResult checkResult = checkResult(sender, 1_000L); + logCheckResult(sender, checkResult); + // historical constraint. Note: AsyncReporter supports memory bounds AsyncReporter asyncReporter = AsyncReporter.builder(sender) .queuedMaxSpans(1000) .messageTimeout(zipkin.getMessageTimeout(), TimeUnit.SECONDS) .metrics(reporterMetrics).build(zipkin.getEncoder()); - CheckResult checkResult = checkResult(asyncReporter); - logCheckResult(asyncReporter, checkResult); + return asyncReporter; } - private void logCheckResult(AsyncReporter asyncReporter, CheckResult checkResult) { + private void logCheckResult(Sender sender, CheckResult checkResult) { if (log.isDebugEnabled() && checkResult != null && checkResult.ok()) { - log.debug("Check result of the [" + asyncReporter.toString() + "] is [" - + checkResult + "]"); + log.debug("Check result of the [" + sender.toString() + "] is [" + checkResult + + "]"); } else if (checkResult != null && !checkResult.ok()) { - log.warn("Check result of the [" + asyncReporter.toString() - + "] contains an error [" + checkResult + "]"); + log.warn("Check result of the [" + sender.toString() + "] contains an error [" + + checkResult + "]"); } } - private CheckResult checkResult(AsyncReporter asyncReporter) { - ExecutorService executor = Executors.newSingleThreadExecutor(); - Callable task = asyncReporter::check; - Future future = executor.submit(task); + /** Limits {@link Sender#check()} to {@code deadlineMillis}. */ + static CheckResult checkResult(Sender sender, long deadlineMillis) { + CheckResult[] outcome = new CheckResult[1]; + Thread thread = new Thread(sender + " check()") { + @Override + public void run() { + try { + outcome[0] = sender.check(); + } + catch (Throwable e) { + outcome[0] = CheckResult.failed(e); + } + } + }; + thread.start(); try { - return future.get(1, TimeUnit.SECONDS); + thread.join(deadlineMillis); + if (outcome[0] != null) { + return outcome[0]; + } + thread.interrupt(); + return CheckResult.failed(new TimeoutException( + thread.getName() + " timed out after " + deadlineMillis + "ms")); } - catch (Exception ex) { - log.warn( - "An exception took place when trying to retrieve the check result. Will return null.", - ex); - return null; - } - finally { - future.cancel(true); - executor.shutdown(); + catch (InterruptedException e) { + Thread.currentThread().interrupt(); + return CheckResult.failed(e); } } diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java index 3cb6423f7..851c1c6d2 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java @@ -17,6 +17,7 @@ package org.springframework.cloud.sleuth.zipkin2; import java.util.List; +import java.util.concurrent.TimeoutException; import brave.Span; import brave.Tracing; @@ -32,6 +33,7 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; import zipkin2.Call; +import zipkin2.CheckResult; import zipkin2.codec.Encoding; import zipkin2.reporter.AsyncReporter; import zipkin2.reporter.Reporter; @@ -51,7 +53,10 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.mock.env.MockEnvironment; +import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.BDDAssertions.then; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; /** * Not using {@linkplain SpringBootTest} as we need to change properties per test. @@ -315,6 +320,77 @@ public class ZipkinAutoConfigurationTests { Awaitility.await().untilAsserted(() -> then(sender.isSpanSent()).isTrue()); } + @Test + public void checkResult_onTime() { + Sender sender = mock(Sender.class); + when(sender.check()).thenReturn(CheckResult.OK); + + assertThat(ZipkinAutoConfiguration.checkResult(sender, 200).ok()).isTrue(); + } + + @Test + public void checkResult_onTime_notOk() { + Sender sender = mock(Sender.class); + RuntimeException exception = new RuntimeException("dead"); + when(sender.check()).thenReturn(CheckResult.failed(exception)); + + assertThat(ZipkinAutoConfiguration.checkResult(sender, 200).error()) + .isSameAs(exception); + } + + /** Bug in {@link Sender} as it shouldn't throw */ + @Test + public void checkResult_thrown() { + Sender sender = mock(Sender.class); + RuntimeException exception = new RuntimeException("dead"); + when(sender.check()).thenThrow(exception); + + assertThat(ZipkinAutoConfiguration.checkResult(sender, 200).error()) + .isSameAs(exception); + } + + @Test + public void checkResult_slow() { + assertThat(ZipkinAutoConfiguration.checkResult(new Sender() { + @Override + public CheckResult check() { + try { + Thread.sleep(500L); + } + catch (InterruptedException e) { + throw new AssertionError(e); + } + return CheckResult.OK; + } + + @Override + public Encoding encoding() { + return Encoding.JSON; + } + + @Override + public int messageMaxBytes() { + return 0; + } + + @Override + public int messageSizeInBytes(List list) { + return 0; + } + + @Override + public Call sendSpans(List list) { + return Call.create(null); + } + + @Override + public String toString() { + return "FakeSender{}"; + } + }, 200).error()).isInstanceOf(TimeoutException.class) + .hasMessage("FakeSender{} check() timed out after 200ms"); + } + @Configuration protected static class Config { From f9821495e1abd0218c9ea7aec5f80f0e23ee5734 Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Fri, 15 May 2020 20:27:13 +0800 Subject: [PATCH 2/4] Deprecates ExceptionLoggingFilter and disables it by default (#1633) `ExceptionLoggingFilter` logs "Uncaught exception thrown" to error level when there is a synchronous exception not otherwise swallowed. This is a cure worse than the disease. This disables it by default and the 3.x should end the years of problems it caused. --- .../autoconfig/TraceAutoConfiguration.java | 24 ++++++----- .../web/ExceptionLoggingFilter.java | 6 +-- .../web/TraceWebServletAutoConfiguration.java | 4 +- .../log/SleuthLogAutoConfiguration.java | 15 +++---- .../main/resources/META-INF/spring.factories | 1 - .../web/TraceFilterWebIntegrationTests.java | 41 ++++++++++++++++++- ...TraceWebServletAutoConfigurationTests.java | 4 +- 7 files changed, 66 insertions(+), 29 deletions(-) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java index abf67c9c4..b7a99b743 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java @@ -54,6 +54,7 @@ import org.springframework.cloud.sleuth.DefaultSpanNamer; import org.springframework.cloud.sleuth.LocalServiceName; import org.springframework.cloud.sleuth.SpanAdjuster; import org.springframework.cloud.sleuth.SpanNamer; +import org.springframework.cloud.sleuth.log.SleuthLogAutoConfiguration; import org.springframework.cloud.sleuth.sampler.SamplerAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -73,7 +74,7 @@ import org.springframework.util.StringUtils; @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.enabled", matchIfMissing = true) @EnableConfigurationProperties(SleuthProperties.class) -@Import(SamplerAutoConfiguration.class) +@Import({ SleuthLogAutoConfiguration.class, SamplerAutoConfiguration.class }) public class TraceAutoConfiguration { /** @@ -92,18 +93,12 @@ public class TraceAutoConfiguration { @Autowired(required = false) List finishedSpanHandlers = new ArrayList<>(); - @Autowired(required = false) - List scopeDecorators = new ArrayList<>(); - @Autowired(required = false) ExtraFieldPropagation.FactoryBuilder extraFieldPropagationFactoryBuilder; @Autowired(required = false) List tracingCustomizers = new ArrayList<>(); - @Autowired(required = false) - List currentTraceContextCustomizers = new ArrayList<>(); - @Autowired(required = false) List extraFieldCustomizers = new ArrayList<>(); @@ -186,11 +181,20 @@ public class TraceAutoConfiguration { } @Bean - CurrentTraceContext sleuthCurrentTraceContext(CurrentTraceContext.Builder builder) { - for (CurrentTraceContext.ScopeDecorator scopeDecorator : this.scopeDecorators) { + CurrentTraceContext sleuthCurrentTraceContext(CurrentTraceContext.Builder builder, + @Nullable List scopeDecorators, + @Nullable List currentTraceContextCustomizers) { + if (scopeDecorators == null) { + scopeDecorators = Collections.emptyList(); + } + if (currentTraceContextCustomizers == null) { + currentTraceContextCustomizers = Collections.emptyList(); + } + + for (CurrentTraceContext.ScopeDecorator scopeDecorator : scopeDecorators) { builder.addScopeDecorator(scopeDecorator); } - for (CurrentTraceContextCustomizer customizer : this.currentTraceContextCustomizers) { + for (CurrentTraceContextCustomizer customizer : currentTraceContextCustomizers) { customizer.customize(builder); } return builder.build(); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionLoggingFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionLoggingFilter.java index 3601994bd..a18a476df 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionLoggingFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/ExceptionLoggingFilter.java @@ -29,11 +29,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; /** - * Filter running after {@link brave.servlet.TracingFilter} that logs uncaught exceptions. - * - * @author Marcin Grzejszczak - * @since 2.0.0 + * @deprecated Since 2.2.3 this is disabled by default and will be removed in 3.0 */ +@Deprecated class ExceptionLoggingFilter implements Filter { private static final Log log = LogFactory.getLog(ExceptionLoggingFilter.class); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java index d39a71a69..866f51daa 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java @@ -83,10 +83,8 @@ public class TraceWebServletAutoConfiguration { return filterRegistrationBean; } - // TODO: Rename to exception-logging-filter for 3.0 @Bean - @ConditionalOnProperty(value = "spring.sleuth.web.exception-logging-filter-enabled", - matchIfMissing = true) + @ConditionalOnProperty("spring.sleuth.web.exception-logging-filter-enabled") public FilterRegistrationBean exceptionThrowingFilter( SleuthWebProperties webProperties) { FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean( diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java index ae1f852a5..9f91b4248 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthLogAutoConfiguration.java @@ -19,28 +19,29 @@ package org.springframework.cloud.sleuth.log; import brave.propagation.CurrentTraceContext; import org.slf4j.MDC; -import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.cloud.sleuth.autoconfig.SleuthProperties; -import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; /** - * {@link org.springframework.boot.autoconfigure.EnableAutoConfiguration - * Auto-configuration} adds a {@link Slf4jScopeDecorator} that prints tracing information - * in the logs. + * {@link Configuration} that adds a {@link Slf4jScopeDecorator} that prints tracing + * information in the logs. *

* * @author Spencer Gibb * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated Do not use this type directly as it was removed in 3.x */ @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.enabled", matchIfMissing = true) -@AutoConfigureBefore(TraceAutoConfiguration.class) +// This is not auto-configuration, but it was in the past. Leaving the name as +// SleuthLogAutoConfiguration because some may have imported this directly. +// A less precise name is better than rev-locking code. +@Deprecated public class SleuthLogAutoConfiguration { /** @@ -49,7 +50,7 @@ public class SleuthLogAutoConfiguration { @Configuration(proxyBeanMethods = false) @ConditionalOnClass(MDC.class) @EnableConfigurationProperties(SleuthSlf4jProperties.class) - protected static class Slf4jConfiguration { + public static class Slf4jConfiguration { @Bean @ConditionalOnProperty(value = "spring.sleuth.log.slf4j.enabled", diff --git a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories index 741ba6969..fcad7b053 100644 --- a/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories +++ b/spring-cloud-sleuth-core/src/main/resources/META-INF/spring.factories @@ -2,7 +2,6 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ org.springframework.cloud.sleuth.annotation.SleuthAnnotationAutoConfiguration,\ org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration,\ -org.springframework.cloud.sleuth.log.SleuthLogAutoConfiguration,\ org.springframework.cloud.sleuth.propagation.SleuthTagPropagationAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.web.TraceHttpAutoConfiguration,\ org.springframework.cloud.sleuth.instrument.web.TraceWebAutoConfiguration,\ diff --git a/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java b/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java index d66e04160..b24121300 100644 --- a/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java +++ b/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java @@ -22,15 +22,22 @@ import java.util.List; import java.util.regex.Pattern; import java.util.stream.Collectors; +import brave.Span.Kind; +import brave.handler.FinishedSpanHandler; +import brave.handler.MutableSpan; import brave.http.HttpRequest; import brave.http.HttpRequestParser; import brave.propagation.CurrentTraceContext; +import brave.propagation.CurrentTraceContext.Scope; +import brave.propagation.TraceContext; import brave.sampler.Sampler; import brave.sampler.SamplerFunction; import org.assertj.core.api.BDDAssertions; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import zipkin2.Span; import org.springframework.beans.factory.annotation.Autowired; @@ -64,6 +71,9 @@ import static org.assertj.core.api.BDDAssertions.then; properties = "spring.sleuth.http.legacy.enabled=true") public class TraceFilterWebIntegrationTests { + private static final Logger log = LoggerFactory + .getLogger(TraceFilterWebIntegrationTests.class); + @Autowired CurrentTraceContext currentTraceContext; @@ -92,7 +102,8 @@ public class TraceFilterWebIntegrationTests { } @Test - public void should_not_create_a_span_for_error_controller(CapturedOutput capture) { + public void exception_logging_span_handler_logs_synchronous_exceptions( + CapturedOutput capture) { try { new RestTemplate().getForObject("http://localhost:" + port() + "/", String.class); @@ -107,7 +118,7 @@ public class TraceFilterWebIntegrationTests { .containsEntry("mvc.controller.class", "ExceptionThrowingController") .containsEntry("error", "Request processing failed; nested exception is java.lang.RuntimeException: Throwing exception"); - // issue#714 + // Trace IDs in logs: issue#714 String hex = fromFirstTraceFilterFlow.traceId(); String[] split = capture.toString().split("\n"); List list = Arrays.stream(split) @@ -162,6 +173,32 @@ public class TraceFilterWebIntegrationTests { return new BlockingQueueSpanReporter(); } + @Bean + FinishedSpanHandler uncaughtExceptionThrown( + CurrentTraceContext currentTraceContext) { + return new FinishedSpanHandler() { + @Override + public boolean handle(TraceContext context, MutableSpan span) { + if (span.kind() != Kind.SERVER || span.error() == null + || !log.isErrorEnabled()) { + return true; // don't add overhead as we only log server errors + } + + // In TracingFilter, the exception is raised in scope. This is is more + // explicit to ensure it works in other tech such as WebFlux. + try (Scope scope = currentTraceContext.maybeScope(context)) { + log.error("Uncaught exception thrown", span.error()); + } + return true; + } + + @Override + public String toString() { + return "UncaughtExceptionThrown"; + } + }; + } + @Bean Sampler alwaysSampler() { return Sampler.ALWAYS_SAMPLE; diff --git a/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfigurationTests.java b/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfigurationTests.java index 6d74c47b1..9bf7035bb 100644 --- a/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfigurationTests.java +++ b/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfigurationTests.java @@ -37,9 +37,9 @@ public class TraceWebServletAutoConfigurationTests { TraceWebServletAutoConfiguration.class)); @Test - public void shouldCreateExceptionLoggingFilterBeanByDefault() { + public void shouldNotCreateExceptionLoggingFilterBeanByDefault() { this.contextRunner.run((context) -> { - assertThat(context).hasBean(EXCEPTION_LOGGING_FILTER_BEAN_NAME); + assertThat(context).doesNotHaveBean(EXCEPTION_LOGGING_FILTER_BEAN_NAME); }); } From d4088dec9ca613935905a45ed28ec7a5215bba4c Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sat, 16 May 2020 13:09:24 +0800 Subject: [PATCH 3/4] Deprecates unnecessarily public types to ease burden (#1638) Types like Properties and AutoConfiguration and internal utilities are routinely marked public when they needn't be. This causes toil as we have to preserve signatures even if they were made public by accident. This deprecates the mass of types marked public to give some hope of less undifferentiated toil in the future. Ideally, future change will consider greatly if a type should be public or not as doing so haunts maintainers. --- spring-cloud-sleuth-core/pom.xml | 1 + .../org/springframework/cloud/sleuth/DefaultSpanNamer.java | 3 +++ .../cloud/sleuth/autoconfig/SleuthProperties.java | 3 +++ .../cloud/sleuth/autoconfig/TraceAutoConfiguration.java | 3 +++ .../sleuth/autoconfig/TraceEnvironmentPostProcessor.java | 3 +++ .../cloud/sleuth/instrument/async/AsyncAutoConfiguration.java | 3 +++ .../sleuth/instrument/async/AsyncCustomAutoConfiguration.java | 3 +++ .../instrument/async/AsyncDefaultAutoConfiguration.java | 3 +++ .../sleuth/instrument/async/LazyTraceAsyncCustomizer.java | 3 +++ .../sleuth/instrument/async/LazyTraceAsyncTaskExecutor.java | 3 +++ .../cloud/sleuth/instrument/async/LazyTraceExecutor.java | 3 +++ .../instrument/async/LazyTraceThreadPoolTaskExecutor.java | 3 +++ .../cloud/sleuth/instrument/async/SleuthAsyncProperties.java | 4 +++- .../cloud/sleuth/instrument/async/TraceAsyncAspect.java | 3 +++ .../instrument/async/TraceAsyncListenableTaskExecutor.java | 3 +++ .../cloud/sleuth/instrument/async/TraceCallable.java | 3 +++ .../cloud/sleuth/instrument/async/TraceRunnable.java | 3 +++ .../sleuth/instrument/async/TraceableExecutorService.java | 3 +++ .../instrument/async/TraceableScheduledExecutorService.java | 3 +++ .../circuitbreaker/SleuthCircuitBreakerAutoConfiguration.java | 3 +++ .../circuitbreaker/SleuthCircuitBreakerProperties.java | 3 +++ .../cloud/sleuth/instrument/circuitbreaker/TraceFunction.java | 3 +++ .../cloud/sleuth/instrument/circuitbreaker/TraceSupplier.java | 3 +++ .../instrument/grpc/SpringAwareManagedChannelBuilder.java | 1 + .../sleuth/instrument/grpc/TraceGrpcAutoConfiguration.java | 3 +++ .../instrument/hystrix/SleuthHystrixAutoConfiguration.java | 3 +++ .../instrument/hystrix/SleuthHystrixConcurrencyStrategy.java | 3 +++ .../hystrix/SleuthHystrixConcurrencyStrategyProperties.java | 3 +++ .../instrument/messaging/SleuthKafkaStreamsConfiguration.java | 3 +++ .../instrument/messaging/SleuthMessagingProperties.java | 3 +++ .../sleuth/instrument/messaging/TraceMessageHeaders.java | 4 ++++ .../instrument/messaging/TraceMessagingAutoConfiguration.java | 3 +++ .../messaging/TraceSpringIntegrationAutoConfiguration.java | 3 +++ .../instrument/messaging/TracingChannelInterceptor.java | 3 +++ .../messaging/websocket/TraceWebSocketAutoConfiguration.java | 3 +++ .../instrument/opentracing/OpentracingAutoConfiguration.java | 3 +++ .../instrument/opentracing/SleuthOpentracingProperties.java | 3 +++ .../instrument/quartz/TraceQuartzAutoConfiguration.java | 3 +++ .../cloud/sleuth/instrument/reactor/ReactorSleuth.java | 2 ++ .../sleuth/instrument/reactor/SleuthReactorProperties.java | 3 +++ .../instrument/reactor/TraceReactorAutoConfiguration.java | 3 +++ .../sleuth/instrument/redis/TraceRedisAutoConfiguration.java | 3 +++ .../cloud/sleuth/instrument/redis/TraceRedisProperties.java | 3 +++ .../sleuth/instrument/rpc/TraceRpcAutoConfiguration.java | 3 +++ .../sleuth/instrument/rxjava/RxJavaAutoConfiguration.java | 3 +++ .../instrument/rxjava/SleuthRxJavaSchedulersProperties.java | 3 +++ .../instrument/scheduling/SleuthSchedulingProperties.java | 3 +++ .../sleuth/instrument/scheduling/TraceSchedulingAspect.java | 3 +++ .../scheduling/TraceSchedulingAutoConfiguration.java | 3 +++ .../sleuth/instrument/web/SleuthHttpLegacyProperties.java | 3 +++ .../cloud/sleuth/instrument/web/SleuthWebProperties.java | 3 +++ .../sleuth/instrument/web/TraceHttpAutoConfiguration.java | 3 +++ .../cloud/sleuth/instrument/web/TraceWebAspect.java | 3 +++ .../sleuth/instrument/web/TraceWebAutoConfiguration.java | 3 +++ .../cloud/sleuth/instrument/web/TraceWebFilter.java | 3 +++ .../sleuth/instrument/web/TraceWebFluxAutoConfiguration.java | 3 +++ .../instrument/web/TraceWebServletAutoConfiguration.java | 3 +++ .../web/client/TraceWebAsyncClientAutoConfiguration.java | 3 +++ .../web/client/TraceWebClientAutoConfiguration.java | 3 +++ .../cloud/sleuth/instrument/web/client/feign/NeverRetry.java | 2 ++ .../instrument/web/client/feign/SleuthFeignProperties.java | 3 +++ .../client/feign/TraceFeignBlockingLoadBalancerClient.java | 3 +++ .../web/client/feign/TraceFeignClientAutoConfiguration.java | 3 +++ .../web/client/feign/TraceLoadBalancerFeignClient.java | 3 +++ .../sleuth/instrument/zuul/TraceZuulAutoConfiguration.java | 3 +++ .../cloud/sleuth/log/SleuthSlf4jProperties.java | 3 +++ .../propagation/SleuthTagPropagationAutoConfiguration.java | 3 +++ .../sleuth/propagation/SleuthTagPropagationProperties.java | 3 +++ .../sleuth/propagation/TagPropagationFinishedSpanHandler.java | 3 +++ .../cloud/sleuth/sampler/ProbabilityBasedSampler.java | 3 +++ .../cloud/sleuth/sampler/SamplerAutoConfiguration.java | 3 +++ .../cloud/sleuth/sampler/SamplerProperties.java | 3 +++ .../cloud/sleuth/util/ArrayListSpanReporter.java | 2 ++ .../org/springframework/cloud/sleuth/util/SpanNameUtil.java | 2 ++ .../jms/config/TracingJmsListenerEndpointRegistry.java | 3 +++ .../cloud/sleuth/zipkin2/DefaultEndpointLocator.java | 3 +++ .../sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java | 3 +++ .../cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java | 3 +++ .../cloud/sleuth/zipkin2/ZipkinProperties.java | 3 +++ 79 files changed, 230 insertions(+), 1 deletion(-) diff --git a/spring-cloud-sleuth-core/pom.xml b/spring-cloud-sleuth-core/pom.xml index b37aff670..b141abb3a 100644 --- a/spring-cloud-sleuth-core/pom.xml +++ b/spring-cloud-sleuth-core/pom.xml @@ -330,6 +330,7 @@ spring-boot-autoconfigure-processor true + org.springframework.boot spring-boot-starter-test diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultSpanNamer.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultSpanNamer.java index b79bf567d..b61edd523 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultSpanNamer.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/DefaultSpanNamer.java @@ -42,7 +42,10 @@ import org.springframework.core.annotation.AnnotationUtils; * @author Marcin Grzejszczak * @since 1.0.0 * @see SpanName + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class DefaultSpanNamer implements SpanNamer { private static boolean isDefaultToString(Object delegate, String spanName) { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/SleuthProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/SleuthProperties.java index 7293d584c..e59397188 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/SleuthProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/SleuthProperties.java @@ -26,7 +26,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 1.0.11 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth") public class SleuthProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java index b7a99b743..9d95f78f5 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java @@ -70,7 +70,10 @@ import org.springframework.util.StringUtils; * @author Marcin Grzejszczak * @author Tim Ysewyn * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.enabled", matchIfMissing = true) @EnableConfigurationProperties(SleuthProperties.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceEnvironmentPostProcessor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceEnvironmentPostProcessor.java index 70c38ef0a..6d053d621 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceEnvironmentPostProcessor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceEnvironmentPostProcessor.java @@ -35,7 +35,10 @@ import org.springframework.core.env.PropertySource; * @author Dave Syer * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceEnvironmentPostProcessor implements EnvironmentPostProcessor { private static final String PROPERTY_SOURCE_NAME = "defaultProperties"; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncAutoConfiguration.java index 7a1f78500..c1f9cd875 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncAutoConfiguration.java @@ -28,7 +28,10 @@ import org.springframework.context.annotation.Configuration; * * @author Jesus Alonso * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.scheduled.enabled", matchIfMissing = true) @EnableConfigurationProperties({ SleuthAsyncProperties.class, diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncCustomAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncCustomAutoConfiguration.java index 4a3904998..70aec549a 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncCustomAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncCustomAutoConfiguration.java @@ -35,7 +35,10 @@ import org.springframework.scheduling.annotation.AsyncConfigurer; * * @author Dave Syer * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnBean(AsyncConfigurer.class) @AutoConfigureBefore(AsyncDefaultAutoConfiguration.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncDefaultAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncDefaultAutoConfiguration.java index 41ef32689..cfee8fd8e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncDefaultAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/AsyncDefaultAutoConfiguration.java @@ -52,7 +52,10 @@ import org.springframework.scheduling.annotation.AsyncConfigurerSupport; * @since 1.0.0 * @see LazyTraceExecutor * @see TraceAsyncAspect + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties({ SleuthAsyncProperties.class, SleuthSchedulingProperties.class }) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncCustomizer.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncCustomizer.java index b107b59a0..76d35e539 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncCustomizer.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncCustomizer.java @@ -29,7 +29,10 @@ import org.springframework.scheduling.annotation.AsyncConfigurerSupport; * * @author Dave Syer * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class LazyTraceAsyncCustomizer extends AsyncConfigurerSupport { private final BeanFactory beanFactory; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncTaskExecutor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncTaskExecutor.java index ad7199d08..acd608f4e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncTaskExecutor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceAsyncTaskExecutor.java @@ -35,7 +35,10 @@ import org.springframework.core.task.AsyncTaskExecutor; * * @author Marcin Grzejszczak * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class LazyTraceAsyncTaskExecutor implements AsyncTaskExecutor { private static final Log log = LogFactory.getLog(LazyTraceAsyncTaskExecutor.class); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceExecutor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceExecutor.java index dc651db2e..3c86536a2 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceExecutor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceExecutor.java @@ -32,7 +32,10 @@ import org.springframework.cloud.sleuth.SpanNamer; * * @author Dave Syer * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class LazyTraceExecutor implements Executor { private static final Log log = LogFactory.getLog(LazyTraceExecutor.class); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskExecutor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskExecutor.java index b97d79059..e29b62531 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskExecutor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/LazyTraceThreadPoolTaskExecutor.java @@ -39,7 +39,10 @@ import org.springframework.util.concurrent.ListenableFuture; * * @author Marcin Grzejszczak * @since 1.0.10 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @SuppressWarnings("serial") public class LazyTraceThreadPoolTaskExecutor extends ThreadPoolTaskExecutor { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/SleuthAsyncProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/SleuthAsyncProperties.java index 18d383a53..f84f0a456 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/SleuthAsyncProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/SleuthAsyncProperties.java @@ -26,8 +26,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Jesus Alonso * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ - +@Deprecated @ConfigurationProperties(prefix = "spring.sleuth.async") public class SleuthAsyncProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspect.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspect.java index f14038e49..e173d6762 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspect.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncAspect.java @@ -36,7 +36,10 @@ import org.springframework.util.ReflectionUtils; * @author Marcin Grzejszczak * @since 1.0.0 * @see Tracer + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Aspect public class TraceAsyncAspect { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutor.java index be8e94e0f..ff43a26a3 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceAsyncListenableTaskExecutor.java @@ -32,7 +32,10 @@ import org.springframework.util.concurrent.ListenableFuture; * @since 1.0.0 * @see brave.propagation.CurrentTraceContext#wrap(Runnable) * @see brave.propagation.CurrentTraceContext#wrap(Callable) + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceAsyncListenableTaskExecutor implements AsyncListenableTaskExecutor { private final AsyncListenableTaskExecutor delegate; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceCallable.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceCallable.java index d7454d048..d7f5ba688 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceCallable.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceCallable.java @@ -33,7 +33,10 @@ import org.springframework.cloud.sleuth.SpanNamer; * @author Spencer Gibb * @author Marcin Grzejszczak * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceCallable implements Callable { /** diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnable.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnable.java index ce838a096..5fa349143 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnable.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceRunnable.java @@ -30,7 +30,10 @@ import org.springframework.cloud.sleuth.SpanNamer; * @author Spencer Gibb * @author Marcin Grzejszczak * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceRunnable implements Runnable { /** diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorService.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorService.java index eb75d1d0d..f5a4edea4 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorService.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableExecutorService.java @@ -36,7 +36,10 @@ import org.springframework.cloud.sleuth.SpanNamer; * * @author Gaurav Rai Mazra * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceableExecutorService implements ExecutorService { final ExecutorService delegate; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorService.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorService.java index f5f391f58..936d1aa45 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorService.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/async/TraceableScheduledExecutorService.java @@ -29,7 +29,10 @@ import org.springframework.beans.factory.BeanFactory; * * @author Gaurav Rai Mazra * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceableScheduledExecutorService extends TraceableExecutorService implements ScheduledExecutorService { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerAutoConfiguration.java index 95886d5c0..334cc01ec 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerAutoConfiguration.java @@ -42,7 +42,10 @@ import org.springframework.context.annotation.Configuration; * * @author Marcin Grzejszczak * @since 2.2.1 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @AutoConfigureAfter(TraceAutoConfiguration.class) @ConditionalOnClass(CircuitBreaker.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerProperties.java index 1cb9665a7..a9614a2a6 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/SleuthCircuitBreakerProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 2.2.1 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.circuitbreaker") public class SleuthCircuitBreakerProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceFunction.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceFunction.java index a450a2344..cc102fea0 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceFunction.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceFunction.java @@ -27,7 +27,10 @@ import brave.Tracer; * * @param type returned by the fallback * @since 2.2.1 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceFunction implements Function { private final Tracer tracer; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceSupplier.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceSupplier.java index 2ca6b2633..79cccd07c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceSupplier.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/circuitbreaker/TraceSupplier.java @@ -27,7 +27,10 @@ import brave.Tracer; * * @param type returned by the supplier * @since 2.2.1 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceSupplier implements Supplier { private final Tracer tracer; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/SpringAwareManagedChannelBuilder.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/SpringAwareManagedChannelBuilder.java index 7fcbdd537..749b3a444 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/SpringAwareManagedChannelBuilder.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/SpringAwareManagedChannelBuilder.java @@ -35,6 +35,7 @@ import io.grpc.inprocess.InProcessChannelBuilder; * * @author Tyler Van Gorder */ +// TODO: research why we need to continue to maintain this given current libraries public class SpringAwareManagedChannelBuilder { private List customizers; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/TraceGrpcAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/TraceGrpcAutoConfiguration.java index 4b333dee1..1d0d7aea3 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/TraceGrpcAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/grpc/TraceGrpcAutoConfiguration.java @@ -40,7 +40,10 @@ import org.springframework.context.annotation.Bean; * brave-instrumentation-grpc are on the classpath. * * @author Tyler Van Gorder + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConditionalOnClass({ GrpcTracing.class, GRpcGlobalInterceptor.class }) @ConditionalOnProperty(value = "spring.sleuth.grpc.enabled", matchIfMissing = true) @ConditionalOnBean(RpcTracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixAutoConfiguration.java index e370694f5..a55aac310 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixAutoConfiguration.java @@ -37,7 +37,10 @@ import org.springframework.context.annotation.Configuration; * @author Marcin Grzejszczak * @see SleuthHystrixConcurrencyStrategy * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @AutoConfigureAfter(TraceAutoConfiguration.class) @ConditionalOnClass(HystrixCommand.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategy.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategy.java index 4ff9a7e38..401719560 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategy.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategy.java @@ -46,7 +46,10 @@ import org.springframework.cloud.sleuth.instrument.async.TraceCallable; * * @author Marcin Grzejszczak * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class SleuthHystrixConcurrencyStrategy extends HystrixConcurrencyStrategy { private static final String HYSTRIX_COMPONENT = "hystrix"; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyProperties.java index 7693b907f..095e96205 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/hystrix/SleuthHystrixConcurrencyStrategyProperties.java @@ -22,7 +22,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * Sleuth Hystrix settings. * * @author Daniel Albuquerque + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.hystrix.strategy") public class SleuthHystrixConcurrencyStrategyProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthKafkaStreamsConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthKafkaStreamsConfiguration.java index 8570db8d9..a0b1654d4 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthKafkaStreamsConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthKafkaStreamsConfiguration.java @@ -40,7 +40,10 @@ import org.springframework.kafka.config.StreamsBuilderFactoryBean; * Auto-configuration} enables Kafka Streams span creation and reporting. * * @author Tim te Beek + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnBean(Tracing.class) @AutoConfigureAfter({ TraceAutoConfiguration.class }) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthMessagingProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthMessagingProperties.java index 80655caa9..fe7b6fc17 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthMessagingProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/SleuthMessagingProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth") public class SleuthMessagingProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessageHeaders.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessageHeaders.java index c90086733..0b15e4f3d 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessageHeaders.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessageHeaders.java @@ -16,6 +16,8 @@ package org.springframework.cloud.sleuth.instrument.messaging; +import brave.propagation.B3Propagation; + /** * Contains trace related messaging headers. The deprecated headers contained `-` which * for example in the JMS specs is invalid. That's why the public constants in this class @@ -23,7 +25,9 @@ package org.springframework.cloud.sleuth.instrument.messaging; * * @author Marcin Grzejszczak * @since 1.0.4 + * @deprecated These names are obviated by {@link B3Propagation.Format#SINGLE}. */ +@Deprecated public final class TraceMessageHeaders { /** diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessagingAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessagingAutoConfiguration.java index 3ad111f85..363ed298b 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessagingAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceMessagingAutoConfiguration.java @@ -86,7 +86,10 @@ import org.springframework.util.ReflectionUtils; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnBean(Tracing.class) @ConditionalOnClass(MessagingTracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java index 92c4277ee..f2a8ea58f 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TraceSpringIntegrationAutoConfiguration.java @@ -39,7 +39,10 @@ import org.springframework.messaging.support.MessageHeaderAccessor; * @author Spencer Gibb * @since 1.0.0 * @see TracingChannelInterceptor + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnClass(GlobalChannelInterceptor.class) @ConditionalOnBean(Tracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptor.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptor.java index 6a0330028..e87048f63 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptor.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/messaging/TracingChannelInterceptor.java @@ -58,7 +58,10 @@ import org.springframework.util.ClassUtils; * which is less sensitive to message manipulation by other interceptors. * * @author Marcin Grzejszczak + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public final class TracingChannelInterceptor extends ChannelInterceptorAdapter implements ExecutorChannelInterceptor { 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 a46019110..600c044b9 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 @@ -37,7 +37,10 @@ import org.springframework.web.socket.config.annotation.StompEndpointRegistry; * @author Dave Syer * @since 1.0.0 * @see AbstractWebSocketMessageBrokerConfigurer + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnClass(DelegatingWebSocketMessageBrokerConfiguration.class) @ConditionalOnBean(Tracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/OpentracingAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/OpentracingAutoConfiguration.java index 17fa5edc4..6441b835c 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/OpentracingAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/OpentracingAutoConfiguration.java @@ -37,7 +37,10 @@ import org.springframework.context.annotation.Configuration; * @author Spencer Gibb * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.opentracing.enabled", matchIfMissing = true) @ConditionalOnBean(Tracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/SleuthOpentracingProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/SleuthOpentracingProperties.java index a23620242..2b01386da 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/SleuthOpentracingProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/opentracing/SleuthOpentracingProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.opentracing") public class SleuthOpentracingProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/quartz/TraceQuartzAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/quartz/TraceQuartzAutoConfiguration.java index 58263b87d..630041ac8 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/quartz/TraceQuartzAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/quartz/TraceQuartzAutoConfiguration.java @@ -36,7 +36,10 @@ import org.springframework.context.annotation.Configuration; * * @author Branden Cash * @since 2.2.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnBean({ Tracing.class, Scheduler.class }) @AutoConfigureAfter({ TraceAutoConfiguration.class, QuartzAutoConfiguration.class }) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java index 48c70d442..5fd092220 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/ReactorSleuth.java @@ -39,6 +39,8 @@ import org.springframework.context.ConfigurableApplicationContext; * @author Stephane Maldini * @since 2.0.0 */ +// TODO: this is public as it is used out of package, but unlikely intended to be +// non-internal public abstract class ReactorSleuth { private static final Log log = LogFactory.getLog(ReactorSleuth.class); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SleuthReactorProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SleuthReactorProperties.java index 5ad4bea31..9410ba0f6 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SleuthReactorProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/SleuthReactorProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 2.0.2 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.reactor") public class SleuthReactorProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java index 1f913ec08..87e0eb510 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/reactor/TraceReactorAutoConfiguration.java @@ -55,7 +55,10 @@ import static org.springframework.cloud.sleuth.instrument.reactor.TraceReactorAu * @author Stephane Maldini * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.reactor.enabled", matchIfMissing = true) @ConditionalOnClass(Mono.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java index d78df8224..dd42c0a59 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfiguration.java @@ -39,7 +39,10 @@ import org.springframework.context.annotation.Configuration; * * @author Chao Chang * @since 2.2.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.redis.enabled", matchIfMissing = true) @ConditionalOnBean({ Tracing.class, ClientResources.class }) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisProperties.java index 29e0235f3..23c44427d 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisProperties.java @@ -22,7 +22,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * Sleuth Redis properties. * * @author Daniel Albuquerque + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.redis") public class TraceRedisProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rpc/TraceRpcAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rpc/TraceRpcAutoConfiguration.java index 7ce6b59cc..f92f748af 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rpc/TraceRpcAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rpc/TraceRpcAutoConfiguration.java @@ -41,7 +41,10 @@ import org.springframework.lang.Nullable; * Auto-configuration} related to RPC based communication. * * @since 2.2.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(name = "spring.sleuth.rpc.enabled", havingValue = "true", matchIfMissing = true) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/RxJavaAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/RxJavaAutoConfiguration.java index f721b83f4..1dce36d67 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/RxJavaAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/RxJavaAutoConfiguration.java @@ -37,7 +37,10 @@ import org.springframework.context.annotation.Configuration; * * @author Shivang Shah * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @AutoConfigureAfter(TraceAutoConfiguration.class) @ConditionalOnBean(Tracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersProperties.java index f32a7ccf6..88d0c0760 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/rxjava/SleuthRxJavaSchedulersProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Arthur Gavlyukovskiy * @since 1.0.12 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.rxjava.schedulers") public class SleuthRxJavaSchedulersProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/SleuthSchedulingProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/SleuthSchedulingProperties.java index f657a5f5a..a5df0ec8b 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/SleuthSchedulingProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/SleuthSchedulingProperties.java @@ -24,7 +24,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Arthur Gavlyukovskiy * @since 1.0.12 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.scheduled") public class SleuthSchedulingProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java index 12c37b6e6..a9bf2956a 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAspect.java @@ -40,7 +40,10 @@ import org.springframework.cloud.sleuth.util.SpanNameUtil; * @author Spencer Gibb * @since 1.0.0 * @see Tracing + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Aspect public class TraceSchedulingAspect { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java index 065d89ced..94a6f1a26 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/scheduling/TraceSchedulingAutoConfiguration.java @@ -37,7 +37,10 @@ import org.springframework.context.annotation.Configuration; * @author Spencer Gibb * @since 1.0.0 * @see TraceSchedulingAspect + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnClass(name = "org.aspectj.lang.ProceedingJoinPoint") @ConditionalOnProperty(value = "spring.sleuth.scheduled.enabled", matchIfMissing = true) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpLegacyProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpLegacyProperties.java index b4ce4b838..a94ae22fc 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpLegacyProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthHttpLegacyProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.http.legacy") public class SleuthHttpLegacyProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthWebProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthWebProperties.java index d377059ae..8d577354e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthWebProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/SleuthWebProperties.java @@ -24,7 +24,10 @@ import org.springframework.boot.context.properties.NestedConfigurationProperty; * * @author Arthur Gavlyukovskiy * @since 1.0.12 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.web") public class SleuthWebProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHttpAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHttpAutoConfiguration.java index ba1123e61..a4f44d3a0 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHttpAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceHttpAutoConfiguration.java @@ -47,7 +47,10 @@ import org.springframework.lang.Nullable; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnBean(TraceWebAutoConfiguration.class) @ConditionalOnProperty(name = "spring.sleuth.http.enabled", havingValue = "true", 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 cec12db30..c07c3285a 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 @@ -56,7 +56,10 @@ import org.springframework.web.context.request.async.WebAsyncTask; * @since 1.0.0 * @see org.springframework.stereotype.Controller * @see org.springframework.web.client.RestOperations + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @SuppressWarnings("ArgNamesWarningsInspection") @Aspect public class TraceWebAspect { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java index 5222c7f13..98e7ca8eb 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebAutoConfiguration.java @@ -53,7 +53,10 @@ import org.springframework.util.StringUtils; * @author Marcin Grzejszczak * @author Tim Ysewyn * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.web.enabled", matchIfMissing = true) @ConditionalOnBean(Tracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java index d92d8683f..8b04803c8 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFilter.java @@ -51,7 +51,10 @@ import org.springframework.web.server.WebFilterChain; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public final class TraceWebFilter implements WebFilter, Ordered { /** diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxAutoConfiguration.java index 3a78d34bc..98681504a 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebFluxAutoConfiguration.java @@ -32,7 +32,10 @@ import org.springframework.context.annotation.Configuration; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.web.enabled", matchIfMissing = true) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java index 866f51daa..f5a71efba 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/TraceWebServletAutoConfiguration.java @@ -52,7 +52,10 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; * @author Marcin Grzejszczak * @author Spencer Gibb * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.web.enabled", matchIfMissing = true) @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.SERVLET) 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 c7dad35fe..3b21c5c3a 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 @@ -44,7 +44,10 @@ import org.springframework.web.client.AsyncRestTemplate; * * @author Marcin Grzejszczak * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @SleuthWebClientEnabled @ConditionalOnProperty(value = "spring.sleuth.web.async.client.enabled", diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java index bb59752b7..725388453 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/TraceWebClientAutoConfiguration.java @@ -62,7 +62,10 @@ import org.springframework.web.reactive.function.client.WebClient; * * @author Marcin Grzejszczak * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @SleuthWebClientEnabled @ConditionalOnBean(HttpTracing.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/NeverRetry.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/NeverRetry.java index 0683d3dad..cdc3fb913 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/NeverRetry.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/NeverRetry.java @@ -24,7 +24,9 @@ import feign.Retryer; * Feign. For the 1.0.x stream we add it here. * * @author Ryan Baxter + * @deprecated This type will be removed in 3.0 */ +@Deprecated public class NeverRetry implements Retryer { /** diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/SleuthFeignProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/SleuthFeignProperties.java index 6762d643e..006793ba2 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/SleuthFeignProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/SleuthFeignProperties.java @@ -23,7 +23,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Marcin Grzejszczak * @since 2.0.2 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.feign") public class SleuthFeignProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignBlockingLoadBalancerClient.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignBlockingLoadBalancerClient.java index b65643a6b..bf00cf4d4 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignBlockingLoadBalancerClient.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignBlockingLoadBalancerClient.java @@ -41,7 +41,10 @@ import org.springframework.cloud.openfeign.loadbalancer.FeignBlockingLoadBalance * @since 2.2.0 * @see TraceLoadBalancerFeignClient * @see FeignBlockingLoadBalancerClient + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceFeignBlockingLoadBalancerClient extends FeignBlockingLoadBalancerClient { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignClientAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignClientAutoConfiguration.java index d65cc10d0..38e34e24e 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignClientAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceFeignClientAutoConfiguration.java @@ -42,7 +42,10 @@ import org.springframework.context.annotation.Scope; * * @author Marcin Grzejszczak * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.feign.enabled", matchIfMissing = true) @ConditionalOnClass({ Client.class, FeignContext.class }) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceLoadBalancerFeignClient.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceLoadBalancerFeignClient.java index 8644610e7..6e4091357 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceLoadBalancerFeignClient.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/instrument/web/client/feign/TraceLoadBalancerFeignClient.java @@ -40,7 +40,10 @@ import org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient; * * @author Marcin Grzejszczak * @since 1.0.7 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TraceLoadBalancerFeignClient extends LoadBalancerFeignClient { private static final Log log = LogFactory.getLog(TraceLoadBalancerFeignClient.class); 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 736b33d22..98dafacbc 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 @@ -35,7 +35,10 @@ import org.springframework.context.annotation.Configuration; * * @author Dave Syer * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.zuul.enabled", matchIfMissing = true) @ConditionalOnWebApplication diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthSlf4jProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthSlf4jProperties.java index 26d028b8e..ebf34e144 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthSlf4jProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/SleuthSlf4jProperties.java @@ -26,7 +26,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Arthur Gavlyukovskiy * @since 1.0.12 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.log.slf4j") public class SleuthSlf4jProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java index 7023750f6..2c3c4bc82 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java @@ -29,7 +29,10 @@ import org.springframework.context.annotation.Configuration; /** * @author Taras Danylchuk * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @ConditionalOnProperty(value = "spring.sleuth.enabled", matchIfMissing = true) @AutoConfigureBefore(TraceAutoConfiguration.class) diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java index 0e60d7830..f2e83e3c3 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java @@ -26,7 +26,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Taras Danylchuk * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.propagation.tag") public class SleuthTagPropagationProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/TagPropagationFinishedSpanHandler.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/TagPropagationFinishedSpanHandler.java index c6bc5c6f6..80b7ebeb7 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/TagPropagationFinishedSpanHandler.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/TagPropagationFinishedSpanHandler.java @@ -35,7 +35,10 @@ import static java.util.Objects.nonNull; * * @author Taras Danylchuk * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class TagPropagationFinishedSpanHandler extends FinishedSpanHandler { private final SleuthProperties sleuthProperties; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/ProbabilityBasedSampler.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/ProbabilityBasedSampler.java index 49ba4e9a7..5603327e6 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/ProbabilityBasedSampler.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/ProbabilityBasedSampler.java @@ -44,7 +44,10 @@ import org.springframework.util.Assert; * @author Marcin Grzejszczak * @author Adrian Cole * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class ProbabilityBasedSampler extends Sampler { private final AtomicInteger counter = new AtomicInteger(0); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfiguration.java index 473fbdd5e..9a91461df 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfiguration.java @@ -33,7 +33,10 @@ import org.springframework.context.annotation.Configuration; * @author Marcin Grzejszczak * @see SamplerCondition * @since 2.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(SamplerProperties.class) // This is not auto-configuration, but it was in the past. Leaving the name as diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerProperties.java index 066655a64..0808077ec 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerProperties.java @@ -24,7 +24,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * @author Marcin Grzejszczak * @author Adrian Cole * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.sleuth.sampler") public class SamplerProperties { diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanReporter.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanReporter.java index 321fa52ad..14eccc356 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanReporter.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/ArrayListSpanReporter.java @@ -27,7 +27,9 @@ import zipkin2.reporter.Reporter; * * @author Marcin Grzejszczak * @since 2.0.0 + * @deprecated This type will be removed in 3.0. Use io.zipkin.brave:brave-tests instead */ +@Deprecated public class ArrayListSpanReporter implements Reporter { private final List spans = new ArrayList<>(); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/SpanNameUtil.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/SpanNameUtil.java index e1737c3c6..42cc78148 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/SpanNameUtil.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/util/SpanNameUtil.java @@ -23,7 +23,9 @@ import org.springframework.util.StringUtils; * * @author Adrian Cole * @since 1.0.2 + * @deprecated This type should have been internal. It will be hidden or removed in 3.0 */ +@Deprecated public final class SpanNameUtil { static final int MAX_NAME_LENGTH = 50; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/jms/config/TracingJmsListenerEndpointRegistry.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/jms/config/TracingJmsListenerEndpointRegistry.java index c0088eaf0..3a93bacbc 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/jms/config/TracingJmsListenerEndpointRegistry.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/jms/config/TracingJmsListenerEndpointRegistry.java @@ -46,7 +46,10 @@ import org.springframework.lang.Nullable; * * @author Marcin Grzejszczak * @since 2.1.1 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public final class TracingJmsListenerEndpointRegistry extends JmsListenerEndpointRegistry { diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultEndpointLocator.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultEndpointLocator.java index 1ed5f0662..67e92c78c 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultEndpointLocator.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultEndpointLocator.java @@ -44,7 +44,10 @@ import org.springframework.util.StringUtils; * * @author Dave Syer * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class DefaultEndpointLocator implements EndpointLocator, ApplicationListener { diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java index ecea5115f..f26d5f4fd 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/DefaultZipkinRestTemplateCustomizer.java @@ -32,7 +32,10 @@ import org.springframework.web.client.RestTemplate; * * @author Marcin Grzejszczak * @since 1.1.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated public class DefaultZipkinRestTemplateCustomizer implements ZipkinRestTemplateCustomizer { private final ZipkinProperties zipkinProperties; diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java index 6d829b084..84fe4e3d2 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfiguration.java @@ -60,7 +60,10 @@ import org.springframework.web.client.RestTemplate; * @since 1.0.0 * @see ZipkinRestTemplateCustomizer * @see DefaultZipkinRestTemplateCustomizer + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(ZipkinProperties.class) @ConditionalOnProperty(value = { "spring.sleuth.enabled", "spring.zipkin.enabled" }, diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java index 0b69da5ac..08c5f88c6 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/ZipkinProperties.java @@ -25,7 +25,10 @@ import org.springframework.boot.context.properties.ConfigurationProperties; * * @author Spencer Gibb * @since 1.0.0 + * @deprecated This type should have never been public and will be hidden or removed in + * 3.0 */ +@Deprecated @ConfigurationProperties("spring.zipkin") public class ZipkinProperties { From b1d39ce291b69700f003afc6cb718035debd836f Mon Sep 17 00:00:00 2001 From: Adrian Cole Date: Sat, 16 May 2020 14:01:38 +0800 Subject: [PATCH 4/4] Updates to Brave 5.12 and introduces SpanHandler (#1632) `SpanHandler` is the base type for the now deprecated `FinishedSpanHandler`. Notable, it can not just handle things at the end of a recording, but also the beginning. For example, this permits set-once baggage without the HTTP abstraction: ```java static final BaggageField EPOCH_SECONDS = BaggageField.create("epoch_seconds"); static final class RootOnlyBaggage extends SpanHandler { @Override public boolean begin(TraceContext context, MutableSpan span, @Nullable TraceContext parent) { if (EPOCH_SECONDS.getValue(context) == null) { // only set at the first span long epochSeconds = System.currentTimeMillis() / 1000; EPOCH_SECONDS.updateValue(context, String.valueOf(epochSeconds)); } return true; } @Override public boolean end(TraceContext context, MutableSpan span, Cause cause) { Tags.BAGGAGE_FIELD.tag(EPOCH_SECONDS, context, span); return true; } } ``` As the parent is available, it can also facilitate advanced tasks like counting children, or summarizing entire local roots. See https://github.com/openzipkin/brave/tree/master/brave/src/test/java/brave/features/handler and https://github.com/openzipkin/brave/blob/master/brave/src/main/java/brave/handler/SpanHandler.java for more --- benchmarks/pom.xml | 2 +- docs/src/main/asciidoc/_configprops.adoc | 2 +- .../main/asciidoc/spring-cloud-sleuth.adoc | 8 +++--- pom.xml | 2 +- .../cloud/sleuth/SpanAdjuster.java | 2 +- .../autoconfig/TraceAutoConfiguration.java | 8 +++--- .../sleuth/log/Slf4jCurrentTraceContext.java | 2 +- ...SleuthTagPropagationAutoConfiguration.java | 5 ++-- .../SleuthTagPropagationProperties.java | 4 +-- .../sleuth/sampler/SamplerCondition.java | 8 +++--- ...andlerTests.java => SpanHandlerTests.java} | 27 ++++++++++--------- ...gurationPropagationCustomizationTests.java | 9 ++++++- .../SamplerAutoConfigurationTests.java | 21 +++++++-------- spring-cloud-sleuth-dependencies/pom.xml | 10 +++++-- spring-cloud-sleuth-samples/pom.xml | 5 ---- .../pom.xml | 4 --- spring-cloud-sleuth-zipkin/pom.xml | 4 +++ .../zipkin2/ZipkinAutoConfigurationTests.java | 16 ++++++----- src/checkstyle/checkstyle-suppressions.xml | 4 +-- .../web/TraceFilterWebIntegrationTests.java | 9 +++---- .../ITSpringConfiguredReactorClient.java | 4 +-- 21 files changed, 82 insertions(+), 74 deletions(-) rename spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/{FinishedSpanHandlerTests.java => SpanHandlerTests.java} (80%) diff --git a/benchmarks/pom.xml b/benchmarks/pom.xml index ac935e10e..c0cb48a5d 100644 --- a/benchmarks/pom.xml +++ b/benchmarks/pom.xml @@ -33,7 +33,7 @@ 1.8 1.8 2.2.5.RELEASE - 5.11.2 + 5.12.0 3.14.6 diff --git a/docs/src/main/asciidoc/_configprops.adoc b/docs/src/main/asciidoc/_configprops.adoc index 2692e0e3c..1fe0eef0f 100644 --- a/docs/src/main/asciidoc/_configprops.adoc +++ b/docs/src/main/asciidoc/_configprops.adoc @@ -33,7 +33,7 @@ |spring.sleuth.messaging.rabbit.remote-service-name | rabbitmq | |spring.sleuth.opentracing.enabled | true | |spring.sleuth.propagation-keys | | List of fields that are referenced the same in-process as it is on the wire. For example, the name "x-vcap-request-id" would be set as-is including the prefix.

Note: {@code fieldName} will be implicitly lower-cased. @see brave.propagation.ExtraFieldPropagation.FactoryBuilder#addField(String) -|spring.sleuth.propagation.tag.enabled | true | Enables a {@link TagPropagationFinishedSpanHandler} that adds extra propagated fields to span tags. +|spring.sleuth.propagation.tag.enabled | true | Enables a {@link TagPropagationSpanHandler} that adds extra propagated fields to span tags. |spring.sleuth.propagation.tag.whitelisted-keys | | A list of keys to be put from extra propagation fields to span tags. |spring.sleuth.reactor.decorate-on-each | true | When true decorates on each operator, will be less performing, but logging will always contain the tracing entries in each operator. When false decorates on last operator, will be more performing, but logging might not always contain the tracing entries. |spring.sleuth.reactor.enabled | true | When true enables instrumentation for reactor. diff --git a/docs/src/main/asciidoc/spring-cloud-sleuth.adoc b/docs/src/main/asciidoc/spring-cloud-sleuth.adoc index 11d2ccda5..114248188 100644 --- a/docs/src/main/asciidoc/spring-cloud-sleuth.adoc +++ b/docs/src/main/asciidoc/spring-cloud-sleuth.adoc @@ -971,17 +971,17 @@ spring.zipkin.service.name: myService === Customization of Reported Spans Before reporting spans (for example, to Zipkin) you may want to modify that span in some way. -You can do so by using the `FinishedSpanHandler` interface. +You can do so by implementing a `SpanHandler`. In Sleuth, we generate spans with a fixed name. Some users want to modify the name depending on values of tags. -You can implement the `FinishedSpanHandler` interface to alter that name. +You can implement the `SpanHandler` interface to alter that name. -The following example shows how to register two beans that implement `FinishedSpanHandler`: +The following example shows how to register two beans that implement `SpanHandler`: [source,java] ---- -include::{project-root}//spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java[tags=finishedSpanHandler,indent=0] +include::{project-root}//spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java[tags=spanHandler,indent=0] ---- The preceding example results in changing the name of the reported span to `foo bar`, just before it gets reported (for example, to Zipkin). diff --git a/pom.xml b/pom.xml index 02be955af..473f71ac9 100644 --- a/pom.xml +++ b/pom.xml @@ -264,7 +264,7 @@ Horsham.SR3 2.2.3.BUILD-SNAPSHOT 2.2.3.BUILD-SNAPSHOT - 5.11.2 + 5.12.0 2.1.7.RELEASE 2.2.1.RELEASE false diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java index e973e5378..5ff8914a9 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/SpanAdjuster.java @@ -21,7 +21,7 @@ import zipkin2.Span; /** * Deprecated Span Adjuster. * - * @deprecated use {@link brave.handler.FinishedSpanHandler} + * @deprecated use {@link brave.handler.SpanHandler} * @author Marcin Grzejszczak */ @Deprecated diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java index 9d95f78f5..bf8f74f51 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfiguration.java @@ -25,7 +25,7 @@ import brave.ErrorParser; import brave.Tracer; import brave.Tracing; import brave.TracingCustomizer; -import brave.handler.FinishedSpanHandler; +import brave.handler.SpanHandler; import brave.propagation.B3Propagation; import brave.propagation.CurrentTraceContext; import brave.propagation.CurrentTraceContextCustomizer; @@ -94,7 +94,7 @@ public class TraceAutoConfiguration { List spanAdjusters = new ArrayList<>(); @Autowired(required = false) - List finishedSpanHandlers = new ArrayList<>(); + List spanHandlers = new ArrayList<>(); @Autowired(required = false) ExtraFieldPropagation.FactoryBuilder extraFieldPropagationFactoryBuilder; @@ -121,8 +121,8 @@ public class TraceAutoConfiguration { spanReporters != null ? spanReporters : Collections.emptyList())) .traceId128Bit(sleuthProperties.isTraceId128()) .supportsJoin(sleuthProperties.isSupportsJoin()); - for (FinishedSpanHandler finishedSpanHandlerFactory : this.finishedSpanHandlers) { - builder.addFinishedSpanHandler(finishedSpanHandlerFactory); + for (SpanHandler spanHandlerFactory : this.spanHandlers) { + builder.addSpanHandler(spanHandlerFactory); } for (TracingCustomizer customizer : this.tracingCustomizers) { customizer.customize(builder); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java index c5551a394..67c3a5cb7 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/log/Slf4jCurrentTraceContext.java @@ -16,8 +16,8 @@ package org.springframework.cloud.sleuth.log; -import brave.internal.HexCodec; import brave.internal.Nullable; +import brave.internal.codec.HexCodec; import brave.propagation.CurrentTraceContext; import brave.propagation.TraceContext; import org.slf4j.Logger; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java index 2c3c4bc82..342c9e4b1 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationAutoConfiguration.java @@ -16,7 +16,7 @@ package org.springframework.cloud.sleuth.propagation; -import brave.handler.FinishedSpanHandler; +import brave.handler.SpanHandler; import org.springframework.boot.autoconfigure.AutoConfigureBefore; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; @@ -45,8 +45,7 @@ public class SleuthTagPropagationAutoConfiguration { protected static class TagPropagationConfiguration { @Bean - static FinishedSpanHandler sleuthFinishedSpanHandler( - SleuthProperties sleuthProperties, + static SpanHandler tagPropagationSpanHandler(SleuthProperties sleuthProperties, SleuthTagPropagationProperties tagPropagationProperties) { return new TagPropagationFinishedSpanHandler(sleuthProperties, tagPropagationProperties); diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java index f2e83e3c3..3d68ce96f 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/propagation/SleuthTagPropagationProperties.java @@ -34,8 +34,8 @@ import org.springframework.boot.context.properties.ConfigurationProperties; public class SleuthTagPropagationProperties { /** - * Enables a {@link TagPropagationFinishedSpanHandler} that adds extra propagated - * fields to span tags. + * Enables a {@link TagPropagationSpanHandler} that adds extra propagated fields to + * span tags. */ private boolean enabled = true; diff --git a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java index 77c6164d9..5c50c3113 100644 --- a/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java +++ b/spring-cloud-sleuth-core/src/main/java/org/springframework/cloud/sleuth/sampler/SamplerCondition.java @@ -17,7 +17,7 @@ package org.springframework.cloud.sleuth.sampler; import brave.TracingCustomizer; -import brave.handler.FinishedSpanHandler; +import brave.handler.SpanHandler; import brave.sampler.Sampler; import org.springframework.boot.autoconfigure.condition.AnyNestedCondition; @@ -48,7 +48,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; *

    *
  • {@code zipkin2.reporter.Reporter} - what's used by Zipkin or others like * Stackdriver
  • - *
  • {@link FinishedSpanHandler} - only accepts sampled data
  • + *
  • {@link SpanHandler} - only accepts sampled data
  • *
  • {@link TracingCustomizer} - can configure one of the above
  • *
* @@ -69,8 +69,8 @@ final class SamplerCondition extends AnyNestedCondition { } - @ConditionalOnBean(FinishedSpanHandler.class) - static final class FinishedSpanHandlerAvailable { + @ConditionalOnBean(SpanHandler.class) + static final class SpanHandlerAvailable { } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java similarity index 80% rename from spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java rename to spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java index b3bfcff56..b5bc9bc94 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/FinishedSpanHandlerTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/SpanHandlerTests.java @@ -18,8 +18,8 @@ package org.springframework.cloud.sleuth; import brave.Span; import brave.Tracer; -import brave.handler.FinishedSpanHandler; import brave.handler.MutableSpan; +import brave.handler.SpanHandler; import brave.propagation.TraceContext; import brave.sampler.Sampler; import org.assertj.core.api.BDDAssertions; @@ -42,10 +42,9 @@ import static org.springframework.boot.test.context.SpringBootTest.WebEnvironmen * @author Marcin Grzejszczak */ @RunWith(SpringRunner.class) -@SpringBootTest( - classes = FinishedSpanHandlerTests.FinishedSpanHandlerAspectTestsConfig.class, +@SpringBootTest(classes = SpanHandlerTests.SpanHandlerAspectTestsConfig.class, webEnvironment = NONE) -public class FinishedSpanHandlerTests { +public class SpanHandlerTests { @Autowired ArrayListSpanReporter reporter; @@ -65,7 +64,7 @@ public class FinishedSpanHandlerTests { @Configuration @EnableAutoConfiguration(exclude = IntegrationAutoConfiguration.class) - static class FinishedSpanHandlerAspectTestsConfig { + static class SpanHandlerAspectTestsConfig { @Bean Sampler sampler() { @@ -77,12 +76,13 @@ public class FinishedSpanHandlerTests { return new ArrayListSpanReporter(); } - // tag::finishedSpanHandler[] + // tag::spanHandler[] @Bean - FinishedSpanHandler handlerOne() { - return new FinishedSpanHandler() { + SpanHandler handlerOne() { + return new SpanHandler() { @Override - public boolean handle(TraceContext traceContext, MutableSpan span) { + public boolean end(TraceContext traceContext, MutableSpan span, + Cause cause) { span.name("foo"); return true; // keep this span } @@ -90,16 +90,17 @@ public class FinishedSpanHandlerTests { } @Bean - FinishedSpanHandler handlerTwo() { - return new FinishedSpanHandler() { + SpanHandler handlerTwo() { + return new SpanHandler() { @Override - public boolean handle(TraceContext traceContext, MutableSpan span) { + public boolean end(TraceContext traceContext, MutableSpan span, + Cause cause) { span.name(span.name() + " bar"); return true; // keep this span } }; } - // end::finishedSpanHandler[] + // end::spanHandler[] } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java index c7f7155b7..a8f1a839a 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/autoconfig/TraceAutoConfigurationPropagationCustomizationTests.java @@ -17,6 +17,7 @@ package org.springframework.cloud.sleuth.autoconfig; import brave.propagation.B3Propagation; +import brave.propagation.B3Propagation.Format; import brave.propagation.B3SinglePropagation; import brave.propagation.ExtraFieldPropagation; import brave.propagation.Propagation; @@ -33,6 +34,12 @@ import org.springframework.context.support.GenericApplicationContext; public class TraceAutoConfigurationPropagationCustomizationTests { + // Default for spring-messaging is on 2.2.x is MULTI, though 3.x it is + // SINGLE_NO_PARENT + // spring-cloud/spring-cloud-sleuth#1607 + Propagation.Factory defaultB3Propagation = B3Propagation.newFactoryBuilder() + .injectFormat(Format.MULTI).build(); + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() .withConfiguration(AutoConfigurations.of(TraceAutoConfiguration.class)); @@ -40,7 +47,7 @@ public class TraceAutoConfigurationPropagationCustomizationTests { public void stillCreatesDefault() { this.contextRunner.run((context) -> { BDDAssertions.then(context.getBean(Propagation.Factory.class)) - .isEqualTo(B3Propagation.FACTORY); + .isEqualTo(defaultB3Propagation); }); } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java index f369d4145..5f5dce848 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/sampler/SamplerAutoConfigurationTests.java @@ -18,8 +18,8 @@ package org.springframework.cloud.sleuth.sampler; import brave.Tracing; import brave.TracingCustomizer; -import brave.handler.FinishedSpanHandler; import brave.handler.MutableSpan; +import brave.handler.SpanHandler; import brave.propagation.TraceContext; import brave.sampler.RateLimitingSampler; import brave.sampler.Sampler; @@ -52,12 +52,11 @@ public class SamplerAutoConfigurationTests { } @Test - public void should_use_RateLimitedSampler_withFinishedSpanHandler() { - this.contextRunner.withUserConfiguration(WithFinishedSpanHandler.class) - .run((context -> { - final Sampler bean = context.getBean(Sampler.class); - BDDAssertions.then(bean).isInstanceOf(RateLimitingSampler.class); - })); + public void should_use_RateLimitedSampler_withSpanHandler() { + this.contextRunner.withUserConfiguration(WithSpanHandler.class).run((context -> { + final Sampler bean = context.getBean(Sampler.class); + BDDAssertions.then(bean).isInstanceOf(RateLimitingSampler.class); + })); } @Test @@ -138,13 +137,13 @@ public class SamplerAutoConfigurationTests { } @Configuration - static class WithFinishedSpanHandler { + static class WithSpanHandler { @Bean - FinishedSpanHandler finishedSpanHandler() { - return new FinishedSpanHandler() { + SpanHandler spanHandler() { + return new SpanHandler() { @Override - public boolean handle(TraceContext context, MutableSpan span) { + public boolean end(TraceContext context, MutableSpan span, Cause cause) { return true; } }; diff --git a/spring-cloud-sleuth-dependencies/pom.xml b/spring-cloud-sleuth-dependencies/pom.xml index 9c31142b4..6e413a494 100644 --- a/spring-cloud-sleuth-dependencies/pom.xml +++ b/spring-cloud-sleuth-dependencies/pom.xml @@ -31,8 +31,8 @@ spring-cloud-sleuth-dependencies Spring Cloud Sleuth Dependencies - 5.11.2 - 0.36.2 + 5.12.0 + 0.37.0 3.4.1 @@ -69,6 +69,12 @@ io.opentracing.brave brave-opentracing ${brave.opentracing.version} + + + io.zipkin.brave + * + + diff --git a/spring-cloud-sleuth-samples/pom.xml b/spring-cloud-sleuth-samples/pom.xml index 08d7d286b..4f3189f54 100644 --- a/spring-cloud-sleuth-samples/pom.xml +++ b/spring-cloud-sleuth-samples/pom.xml @@ -70,11 +70,6 @@ spring-cloud-sleuth-sample-test-core ${project.version} - - io.zipkin.zipkin2 - zipkin - 2.19.3 - diff --git a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml index 84723e1de..fdb98f015 100644 --- a/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml +++ b/spring-cloud-sleuth-samples/spring-cloud-sleuth-sample-test-core/pom.xml @@ -105,10 +105,6 @@ awaitility compile - - io.zipkin.zipkin2 - zipkin - io.projectreactor reactor-core diff --git a/spring-cloud-sleuth-zipkin/pom.xml b/spring-cloud-sleuth-zipkin/pom.xml index 0843e555e..72bedc57a 100644 --- a/spring-cloud-sleuth-zipkin/pom.xml +++ b/spring-cloud-sleuth-zipkin/pom.xml @@ -79,6 +79,10 @@ io.zipkin.reporter2 zipkin-reporter + + io.zipkin.reporter2 + zipkin-reporter-brave + io.zipkin.reporter2 zipkin-sender-kafka diff --git a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java index 851c1c6d2..3a68148a2 100644 --- a/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java +++ b/spring-cloud-sleuth-zipkin/src/test/java/org/springframework/cloud/sleuth/zipkin2/ZipkinAutoConfigurationTests.java @@ -21,8 +21,8 @@ import java.util.concurrent.TimeoutException; import brave.Span; import brave.Tracing; -import brave.handler.FinishedSpanHandler; import brave.handler.MutableSpan; +import brave.handler.SpanHandler; import brave.propagation.TraceContext; import brave.sampler.Sampler; import okhttp3.mockwebserver.MockWebServer; @@ -405,10 +405,11 @@ public class ZipkinAutoConfigurationTests { protected static class HandlerHanldersConfig { @Bean - FinishedSpanHandler handlerOne() { - return new FinishedSpanHandler() { + SpanHandler handlerOne() { + return new SpanHandler() { @Override - public boolean handle(TraceContext traceContext, MutableSpan span) { + public boolean end(TraceContext traceContext, MutableSpan span, + Cause cause) { span.name("foo"); return true; // keep this span } @@ -416,10 +417,11 @@ public class ZipkinAutoConfigurationTests { } @Bean - FinishedSpanHandler handlerTwo() { - return new FinishedSpanHandler() { + SpanHandler handlerTwo() { + return new SpanHandler() { @Override - public boolean handle(TraceContext traceContext, MutableSpan span) { + public boolean end(TraceContext traceContext, MutableSpan span, + Cause cause) { span.name(span.name() + " bar"); return true; // keep this span } diff --git a/src/checkstyle/checkstyle-suppressions.xml b/src/checkstyle/checkstyle-suppressions.xml index 80260c2e4..e75174d51 100644 --- a/src/checkstyle/checkstyle-suppressions.xml +++ b/src/checkstyle/checkstyle-suppressions.xml @@ -5,7 +5,7 @@ - + @@ -16,7 +16,7 @@ - + diff --git a/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java b/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java index b24121300..afd175451 100644 --- a/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java +++ b/tests/spring-cloud-sleuth-instrumentation-mvc-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/TraceFilterWebIntegrationTests.java @@ -23,8 +23,8 @@ import java.util.regex.Pattern; import java.util.stream.Collectors; import brave.Span.Kind; -import brave.handler.FinishedSpanHandler; import brave.handler.MutableSpan; +import brave.handler.SpanHandler; import brave.http.HttpRequest; import brave.http.HttpRequestParser; import brave.propagation.CurrentTraceContext; @@ -174,11 +174,10 @@ public class TraceFilterWebIntegrationTests { } @Bean - FinishedSpanHandler uncaughtExceptionThrown( - CurrentTraceContext currentTraceContext) { - return new FinishedSpanHandler() { + SpanHandler uncaughtExceptionThrown(CurrentTraceContext currentTraceContext) { + return new SpanHandler() { @Override - public boolean handle(TraceContext context, MutableSpan span) { + public boolean end(TraceContext context, MutableSpan span, Cause cause) { if (span.kind() != Kind.SERVER || span.error() == null || !log.isErrorEnabled()) { return true; // don't add overhead as we only log server errors diff --git a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ITSpringConfiguredReactorClient.java b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ITSpringConfiguredReactorClient.java index 19fcf9895..3db58f794 100644 --- a/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ITSpringConfiguredReactorClient.java +++ b/tests/spring-cloud-sleuth-instrumentation-reactor-tests/src/test/java/org/springframework/cloud/sleuth/instrument/web/client/ITSpringConfiguredReactorClient.java @@ -34,10 +34,10 @@ import org.reactivestreams.Subscription; import reactor.core.publisher.BaseSubscriber; import reactor.core.publisher.Mono; import reactor.netty.http.client.HttpClient; -import zipkin2.Span; import org.springframework.context.annotation.AnnotationConfigApplicationContext; +import static brave.Span.Kind.CLIENT; import static org.assertj.core.api.Assertions.assertThat; /** @@ -161,7 +161,7 @@ abstract class ITSpringConfiguredReactorClient assertThat(server.getRequestCount()).isOne(); - reporter.takeRemoteSpanWithError(Span.Kind.CLIENT, "CANCELLED"); + this.spanHandler.takeRemoteSpanWithErrorMessage(CLIENT, "CANCELLED"); } }