Skip to content

Commit bc05406

Browse files
committed
Merge branch '4.0.x'
Closes gh-48584
2 parents b43cc31 + ce1efb0 commit bc05406

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

module/spring-boot-webmvc/src/main/java/org/springframework/boot/webmvc/autoconfigure/WebMvcObservationAutoConfiguration.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@
5858
"org.springframework.boot.micrometer.metrics.autoconfigure.export.simple.SimpleMetricsExportAutoConfiguration",
5959
"org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration" })
6060
@ConditionalOnWebApplication(type = Type.SERVLET)
61-
@ConditionalOnClass({ DispatcherServlet.class, Observation.class })
61+
@ConditionalOnClass({ DispatcherServlet.class, Observation.class, ObservationProperties.class })
6262
@ConditionalOnBean(ObservationRegistry.class)
63-
@EnableConfigurationProperties({ MetricsProperties.class, ObservationProperties.class })
63+
@EnableConfigurationProperties(ObservationProperties.class)
6464
public final class WebMvcObservationAutoConfiguration {
6565

6666
@Bean
@@ -79,8 +79,9 @@ FilterRegistrationBean<ServerHttpObservationFilter> webMvcObservationFilter(Obse
7979
}
8080

8181
@Configuration(proxyBeanMethods = false)
82-
@ConditionalOnClass(MeterRegistry.class)
82+
@ConditionalOnClass({ MeterRegistry.class, MetricsProperties.class })
8383
@ConditionalOnBean(MeterRegistry.class)
84+
@EnableConfigurationProperties(MetricsProperties.class)
8485
static class MeterFilterConfiguration {
8586

8687
@Bean

module/spring-boot-webmvc/src/test/java/org/springframework/boot/webmvc/autoconfigure/WebMvcObservationAutoConfigurationTests.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,12 @@
3131
import org.junit.jupiter.api.extension.ExtendWith;
3232

3333
import org.springframework.boot.autoconfigure.AutoConfigurations;
34+
import org.springframework.boot.micrometer.metrics.MaximumAllowableTagsMeterFilter;
3435
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsAutoConfiguration;
36+
import org.springframework.boot.micrometer.metrics.autoconfigure.MetricsProperties;
3537
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationAutoConfiguration;
38+
import org.springframework.boot.micrometer.observation.autoconfigure.ObservationProperties;
39+
import org.springframework.boot.test.context.FilteredClassLoader;
3640
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
3741
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
3842
import org.springframework.boot.test.system.CapturedOutput;
@@ -74,6 +78,12 @@ void backsOffWhenObservationRegistryIsMissing() {
7478
.run((context) -> assertThat(context).doesNotHaveBean(FilterRegistrationBean.class));
7579
}
7680

81+
@Test
82+
void backsOffWhenObservationPropertiesIsMissing() {
83+
this.contextRunner.withClassLoader(new FilteredClassLoader(ObservationProperties.class))
84+
.run((context) -> assertThat(context).doesNotHaveBean(FilterRegistrationBean.class));
85+
}
86+
7787
@Test
7888
void definesFilterWhenRegistryIsPresent() {
7989
this.contextRunner.run((context) -> {
@@ -171,6 +181,12 @@ void shouldNotDenyNorLogIfMaxUrisIsNotReached(CapturedOutput output) {
171181
});
172182
}
173183

184+
@Test
185+
void shouldBackOffIfMetricsPropertiesIsNotPresent() {
186+
this.contextRunner.withClassLoader(new FilteredClassLoader(MetricsProperties.class))
187+
.run((context) -> assertThat(context).doesNotHaveBean(MaximumAllowableTagsMeterFilter.class));
188+
}
189+
174190
private MeterRegistry getInitializedMeterRegistry(AssertableWebApplicationContext context) {
175191
return getInitializedMeterRegistry(context, "/test0", "/test1", "/test2");
176192
}

0 commit comments

Comments
 (0)