Skip to content

Commit 4134e3d

Browse files
committed
Relocate SSL metrics and health
1 parent c5e1896 commit 4134e3d

File tree

13 files changed

+46
-35
lines changed

13 files changed

+46
-35
lines changed

spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@ org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundry
33
org.springframework.boot.actuate.autoconfigure.observability.ObservabilityAutoConfiguration
44
org.springframework.boot.actuate.autoconfigure.security.reactive.ReactiveManagementWebSecurityAutoConfiguration
55
org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration
6-
org.springframework.boot.actuate.autoconfigure.ssl.SslHealthContributorAutoConfiguration
7-
org.springframework.boot.actuate.autoconfigure.ssl.SslObservabilityAutoConfiguration
86
org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration
97
org.springframework.boot.actuate.autoconfigure.tracing.MicrometerTracingAutoConfiguration
108
org.springframework.boot.actuate.autoconfigure.tracing.NoopTracerAutoConfiguration

spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ org.springframework.boot.actuate.autoconfigure.management.HeapDumpWebEndpointAut
2121
org.springframework.boot.actuate.autoconfigure.management.ThreadDumpEndpointAutoConfiguration
2222
org.springframework.boot.actuate.autoconfigure.sbom.SbomEndpointAutoConfiguration
2323
org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration
24+
org.springframework.boot.actuate.autoconfigure.ssl.SslHealthContributorAutoConfiguration
2425
org.springframework.boot.actuate.autoconfigure.startup.StartupEndpointAutoConfiguration
2526
org.springframework.boot.actuate.autoconfigure.system.DiskSpaceHealthContributorAutoConfiguration
2627
org.springframework.boot.actuate.autoconfigure.web.exchanges.HttpExchangesEndpointAutoConfiguration
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.ssl;
17+
package org.springframework.boot.metrics.autoconfigure.ssl;
1818

1919
import java.time.Clock;
2020
import java.time.Duration;
Lines changed: 13 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -14,44 +14,39 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.ssl;
17+
package org.springframework.boot.metrics.autoconfigure.ssl;
1818

1919
import io.micrometer.core.instrument.MeterRegistry;
2020

21+
import org.springframework.beans.factory.ObjectProvider;
2122
import org.springframework.boot.autoconfigure.AutoConfiguration;
2223
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
2324
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
2425
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
25-
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2626
import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration;
27-
import org.springframework.boot.context.properties.EnableConfigurationProperties;
2827
import org.springframework.boot.info.SslInfo;
28+
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
29+
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
2930
import org.springframework.boot.ssl.SslBundles;
3031
import org.springframework.context.annotation.Bean;
3132

3233
/**
33-
* {@link EnableAutoConfiguration Auto-configuration} for SSL observability.
34+
* {@link EnableAutoConfiguration Auto-configuration} for SSL metrics.
3435
*
3536
* @author Moritz Halbritter
36-
* @since 3.5.0
37+
* @since 4.0.0
3738
*/
38-
@AutoConfiguration(after = SslAutoConfiguration.class,
39-
afterName = { "org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration",
40-
"org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration" })
39+
@AutoConfiguration(
40+
after = { SslAutoConfiguration.class, MetricsAutoConfiguration.class,
41+
CompositeMeterRegistryAutoConfiguration.class },
42+
afterName = "org.springframework.boot.actuate.autoconfigure.info.InfoContributorAutoConfiguration")
4143
@ConditionalOnClass(MeterRegistry.class)
4244
@ConditionalOnBean({ MeterRegistry.class, SslBundles.class })
43-
@EnableConfigurationProperties(SslHealthIndicatorProperties.class)
44-
public class SslObservabilityAutoConfiguration {
45+
public class SslMetricsAutoConfiguration {
4546

4647
@Bean
47-
SslMeterBinder sslMeterBinder(SslInfo sslInfo, SslBundles sslBundles) {
48-
return new SslMeterBinder(sslInfo, sslBundles);
49-
}
50-
51-
@Bean
52-
@ConditionalOnMissingBean
53-
SslInfo sslInfoProvider(SslBundles sslBundles, SslHealthIndicatorProperties properties) {
54-
return new SslInfo(sslBundles);
48+
SslMeterBinder sslMeterBinder(SslBundles sslBundles, ObjectProvider<SslInfo> sslInfo) {
49+
return new SslMeterBinder(sslInfo.getIfAvailable(() -> new SslInfo(sslBundles)), sslBundles);
5550
}
5651

5752
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
/*
2+
* Copyright 2012-2025 the original author or authors.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* https://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
/**
18+
* Auto-configuration for SSL metrics.
19+
*/
20+
package org.springframework.boot.metrics.autoconfigure.ssl;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.ssl;
17+
package org.springframework.boot.metrics.autoconfigure.ssl;
1818

1919
import java.time.Clock;
2020
import java.time.Duration;
Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,53 +14,50 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.actuate.autoconfigure.ssl;
17+
package org.springframework.boot.metrics.autoconfigure.ssl;
1818

1919
import org.junit.jupiter.api.Test;
2020

2121
import org.springframework.boot.autoconfigure.AutoConfigurations;
2222
import org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration;
23-
import org.springframework.boot.info.SslInfo;
2423
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
2524
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
2625
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
2726

2827
import static org.assertj.core.api.Assertions.assertThat;
2928

3029
/**
31-
* Tests for {@link SslObservabilityAutoConfiguration}.
30+
* Tests for {@link SslMetricsAutoConfiguration}.
3231
*
3332
* @author Moritz Halbritter
3433
*/
35-
class SslObservabilityAutoConfigurationTests {
34+
class SslMetricsAutoConfigurationTests {
3635

3736
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner().withConfiguration(
3837
AutoConfigurations.of(MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class,
39-
SslAutoConfiguration.class, SslObservabilityAutoConfiguration.class));
38+
SslAutoConfiguration.class, SslMetricsAutoConfiguration.class));
4039

4140
private final ApplicationContextRunner contextRunnerWithoutSslBundles = new ApplicationContextRunner()
4241
.withConfiguration(AutoConfigurations.of(MetricsAutoConfiguration.class,
43-
CompositeMeterRegistryAutoConfiguration.class, SslObservabilityAutoConfiguration.class));
42+
CompositeMeterRegistryAutoConfiguration.class, SslMetricsAutoConfiguration.class));
4443

4544
private final ApplicationContextRunner contextRunnerWithoutMeterRegistry = new ApplicationContextRunner()
46-
.withConfiguration(AutoConfigurations.of(SslAutoConfiguration.class, SslObservabilityAutoConfiguration.class));
45+
.withConfiguration(AutoConfigurations.of(SslAutoConfiguration.class, SslMetricsAutoConfiguration.class));
4746

4847
@Test
49-
void shouldSupplyBeans() {
50-
this.contextRunner
51-
.run((context) -> assertThat(context).hasSingleBean(SslMeterBinder.class).hasSingleBean(SslInfo.class));
48+
void shouldSupplyMeterBinder() {
49+
this.contextRunner.run((context) -> assertThat(context).hasSingleBean(SslMeterBinder.class));
5250
}
5351

5452
@Test
5553
void shouldBackOffIfSslBundlesIsMissing() {
56-
this.contextRunnerWithoutSslBundles
57-
.run((context) -> assertThat(context).doesNotHaveBean(SslMeterBinder.class).doesNotHaveBean(SslInfo.class));
54+
this.contextRunnerWithoutSslBundles.run((context) -> assertThat(context).doesNotHaveBean(SslMeterBinder.class));
5855
}
5956

6057
@Test
6158
void shouldBackOffIfMeterRegistryIsMissing() {
6259
this.contextRunnerWithoutMeterRegistry
63-
.run((context) -> assertThat(context).doesNotHaveBean(SslMeterBinder.class).doesNotHaveBean(SslInfo.class));
60+
.run((context) -> assertThat(context).doesNotHaveBean(SslMeterBinder.class));
6461
}
6562

6663
}

0 commit comments

Comments
 (0)