From 46b1ad9ff597033e6c1c5fb69820ceda1079ec07 Mon Sep 17 00:00:00 2001 From: chang-chao Date: Thu, 21 Mar 2019 23:13:35 +0900 Subject: [PATCH] Enables Lettuce Configuration only when ClientResources bean exists. --- .../instrument/redis/TraceRedisAutoConfiguration.java | 7 ++----- .../instrument/redis/TraceRedisAutoConfigurationTests.java | 7 ++----- 2 files changed, 4 insertions(+), 10 deletions(-) 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 b45c338ff..f0a5a0d8c 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 @@ -24,7 +24,6 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.boot.autoconfigure.AutoConfigureAfter; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; -import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -43,7 +42,7 @@ import org.springframework.context.annotation.Configuration; public class TraceRedisAutoConfiguration { @Configuration - @ConditionalOnClass(ClientResources.class) + @ConditionalOnBean(ClientResources.class) static class LettuceConfig { @Bean @@ -75,9 +74,7 @@ class TraceLettuceClientResourcesBeanPostProcessor implements BeanPostProcessor throws BeansException { if (bean instanceof ClientResources) { ClientResources cr = (ClientResources) bean; - // tracing of ClientResources instance created by default is `disabled()` - if (cr.tracing() == null - || cr.tracing() == io.lettuce.core.tracing.Tracing.disabled()) { + if (!cr.tracing().isEnabled()) { return cr.mutate().tracing(BraveTracing.create(this.tracing)).build(); } } diff --git a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java index 4d5bed271..fb909c995 100644 --- a/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java +++ b/spring-cloud-sleuth-core/src/test/java/org/springframework/cloud/sleuth/instrument/redis/TraceRedisAutoConfigurationTests.java @@ -47,9 +47,7 @@ public class TraceRedisAutoConfigurationTests { @Test public void tracing_should_be_set() { then(this.traceLettuceClientResourcesBeanPostProcessor.tracingCalled).isTrue(); - then(this.clientResources.tracing()).isNotNull(); - then(this.clientResources.tracing()) - .isNotSameAs(io.lettuce.core.tracing.Tracing.disabled()); + then(this.clientResources.tracing().isEnabled()).isTrue(); } @Configuration @@ -59,8 +57,7 @@ public class TraceRedisAutoConfigurationTests { @Bean ClientResources clientResources() { ClientResources clientResources = ClientResources.create(); - then(clientResources.tracing()) - .isSameAs(io.lettuce.core.tracing.Tracing.disabled()); + then(clientResources.tracing().isEnabled()).isFalse(); return clientResources; }