From d0cf7381a4850a163b74cb030805eef26270f701 Mon Sep 17 00:00:00 2001 From: Marius Bogoevici Date: Fri, 7 Apr 2017 01:10:41 -0400 Subject: [PATCH] Fix autoconfiguration ordering with Sleuth Stream (#557) Fix #556 * Explicitly state that `StreamSleuthAutoConfiguration` should execute before `TraceAutoConfiguration`; * Also ensure that `ChannelsEndpointAutoConfiguration` is configured after `StreamSleuthAutoConfiguration` to ensure that the bound channels are added to the `/channels` actuator endpoint --- .../cloud/sleuth/stream/SleuthStreamAutoConfiguration.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfiguration.java b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfiguration.java index eb027ff00..84935dedc 100644 --- a/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfiguration.java +++ b/spring-cloud-sleuth-stream/src/main/java/org/springframework/cloud/sleuth/stream/SleuthStreamAutoConfiguration.java @@ -28,12 +28,14 @@ import org.springframework.boot.context.properties.EnableConfigurationProperties import org.springframework.cloud.client.discovery.DiscoveryClient; import org.springframework.cloud.commons.util.InetUtils; import org.springframework.cloud.sleuth.Sampler; +import org.springframework.cloud.sleuth.autoconfig.TraceAutoConfiguration; import org.springframework.cloud.sleuth.metric.SpanMetricReporter; import org.springframework.cloud.sleuth.metric.TraceMetricsAutoConfiguration; import org.springframework.cloud.sleuth.sampler.PercentageBasedSampler; import org.springframework.cloud.sleuth.sampler.SamplerProperties; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.config.ChannelBindingAutoConfiguration; +import org.springframework.cloud.stream.config.ChannelsEndpointAutoConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; @@ -55,9 +57,9 @@ import org.springframework.scheduling.support.PeriodicTrigger; * @since 1.0.0 */ @Configuration -@EnableConfigurationProperties({ SleuthStreamProperties.class, SamplerProperties.class, ZipkinProperties.class }) +@EnableConfigurationProperties({SleuthStreamProperties.class, SamplerProperties.class, ZipkinProperties.class}) @AutoConfigureAfter(TraceMetricsAutoConfiguration.class) -@AutoConfigureBefore(ChannelBindingAutoConfiguration.class) +@AutoConfigureBefore({ChannelBindingAutoConfiguration.class, TraceAutoConfiguration.class, ChannelsEndpointAutoConfiguration.class}) @EnableBinding(SleuthSource.class) @ConditionalOnProperty(value = "spring.sleuth.stream.enabled", matchIfMissing = true) public class SleuthStreamAutoConfiguration {