Issue 1498 (#1499)

* Add check another expression before create default B3Propagation factory - issue 1498

* fix ImportOrder errors
This commit is contained in:
Jakub Rosa
2019-12-03 10:45:00 +01:00
committed by Marcin Grzejszczak
parent f80d5b00d7
commit 8510596e69
2 changed files with 52 additions and 1 deletions

View File

@@ -152,7 +152,9 @@ public class TraceAutoConfiguration {
Propagation.Factory sleuthPropagation(SleuthProperties sleuthProperties) {
if (sleuthProperties.getBaggageKeys().isEmpty()
&& sleuthProperties.getPropagationKeys().isEmpty()
&& extraFieldCustomizers.isEmpty()) {
&& extraFieldCustomizers.isEmpty()
&& this.extraFieldPropagationFactoryBuilder == null
&& sleuthProperties.getLocalKeys().isEmpty()) {
return B3Propagation.FACTORY;
}
ExtraFieldPropagation.FactoryBuilder factoryBuilder;

View File

@@ -16,6 +16,9 @@
package org.springframework.cloud.sleuth.autoconfig;
import brave.propagation.B3Propagation;
import brave.propagation.ExtraFieldPropagation;
import brave.propagation.Propagation;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import org.assertj.core.api.BDDAssertions;
@@ -65,6 +68,31 @@ public class TraceAutoConfigurationTests {
});
}
@Test
public void should_use_B3Propagation_factory_if_no_have_any_config() {
this.contextRunner.run((context -> {
final Propagation.Factory bean = context.getBean(Propagation.Factory.class);
BDDAssertions.then(bean).isInstanceOf(Propagation.Factory.class);
}));
}
@Test
public void should_use_local_keys_from_properties() {
this.contextRunner.withUserConfiguration(WithLocalKeys.class).run((context -> {
final Propagation.Factory bean = context.getBean(Propagation.Factory.class);
BDDAssertions.then(bean).isInstanceOf(ExtraFieldPropagation.Factory.class);
}));
}
@Test
public void should_use_extraFieldPropagationFactoryBuilder_bean() {
this.contextRunner.withUserConfiguration(WithExtraFieldPropagationFactoryBuilderBean.class)
.run((context -> {
final Propagation.Factory bean = context.getBean(Propagation.Factory.class);
BDDAssertions.then(bean).isInstanceOf(ExtraFieldPropagation.Factory.class);
}));
}
@Configuration
static class WithMeterRegistry {
@@ -75,4 +103,25 @@ public class TraceAutoConfigurationTests {
}
@Configuration
static class WithLocalKeys {
@Bean
SleuthProperties sleuthProperties() {
final SleuthProperties sleuthProperties = new SleuthProperties();
sleuthProperties.getLocalKeys().add("test-key");
return sleuthProperties;
}
}
@Configuration
static class WithExtraFieldPropagationFactoryBuilderBean {
@Bean
ExtraFieldPropagation.FactoryBuilder extraFieldPropagationFactoryBuilderBean() {
return ExtraFieldPropagation
.newFactoryBuilder(B3Propagation.FACTORY);
}
}
}