From 89e579201b997d2cb3ac055e97ec7788bd807496 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 31 Jan 2018 15:34:40 +0100 Subject: [PATCH] Zipkin sender type is case insensitive; fixes gh-843 --- .../zipkin2/sender/ZipkinSenderCondition.java | 2 +- .../zipkin2/ZipkinAutoConfigurationTests.java | 21 ++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinSenderCondition.java b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinSenderCondition.java index d7ac381fa..ab695885e 100644 --- a/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinSenderCondition.java +++ b/spring-cloud-sleuth-zipkin/src/main/java/org/springframework/cloud/sleuth/zipkin2/sender/ZipkinSenderCondition.java @@ -29,7 +29,7 @@ class ZipkinSenderCondition extends SpringBootCondition { String senderType = getType(((AnnotationMetadata) md).getClassName()); String value = resolver.getProperty("type"); - if (value.equals(senderType)) { + if (value.equalsIgnoreCase(senderType)) { return ConditionOutcome.match(message.because(value + " sender type")); } return ConditionOutcome.noMatch(message.because(value + " sender type")); 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 7373621a5..1a6183078 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 @@ -26,7 +26,6 @@ import org.junit.rules.ExpectedException; import org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration; -import org.springframework.boot.autoconfigure.kafka.KafkaProperties; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.cloud.sleuth.Span; import org.springframework.cloud.sleuth.SpanReporter; @@ -154,6 +153,26 @@ public class ZipkinAutoConfigurationTests { context.close(); } + @Test + public void canOverrideBySenderAndIsCaseInsensitive() throws Exception { + context = new AnnotationConfigApplicationContext(); + addEnvironment(context, "spring.zipkin.sender.type:WEB"); + context.register( + PropertyPlaceholderAutoConfiguration.class, + TraceMetricsAutoConfiguration.class, + RabbitAutoConfiguration.class, + KafkaAutoConfiguration.class, + ZipkinAutoConfiguration.class); + context.refresh(); + + SpanReporter spanReporter = context.getBean(SpanReporter.class); + assertThat(spanReporter).extracting("reporter.sender").allSatisfy( + s -> assertThat(s.getClass().getSimpleName()).isEqualTo("RestTemplateSender") + ); + + context.close(); + } + @Test public void rabbitWinsWhenKafkaPresent() throws Exception { context = new AnnotationConfigApplicationContext();