Enables Lettuce Configuration only when ClientResources bean exists.

This commit is contained in:
chang-chao
2019-03-21 23:13:35 +09:00
parent 45cf20aca3
commit 46b1ad9ff5
2 changed files with 4 additions and 10 deletions

View File

@@ -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();
}
}

View File

@@ -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;
}