Move metrics and endpoint auto-config into spring-boot-integration

This commit is contained in:
Andy Wilkinson
2025-05-20 09:55:37 +01:00
committed by Phillip Webb
parent 84d01cbad4
commit bb3bd2a81e
16 changed files with 34 additions and 33 deletions

View File

@@ -36,7 +36,6 @@ dependencies {
optional(project(":spring-boot-project:spring-boot-data-redis"))
optional(project(":spring-boot-project:spring-boot-http-converter"))
optional(project(":spring-boot-project:spring-boot-http-codec"))
optional(project(":spring-boot-project:spring-boot-integration"))
optional(project(":spring-boot-project:spring-boot-jackson"))
optional(project(":spring-boot-project:spring-boot-jersey"))
optional(project(":spring-boot-project:spring-boot-jetty"))
@@ -166,7 +165,6 @@ dependencies {
testImplementation("org.hsqldb:hsqldb")
testImplementation("org.springframework:spring-orm")
testImplementation("org.springframework.data:spring-data-rest-webmvc")
testImplementation("org.springframework.integration:spring-integration-jmx")
testImplementation("org.springframework.security:spring-security-test")
testImplementation("org.yaml:snakeyaml")

View File

@@ -15,7 +15,6 @@ org.springframework.boot.actuate.autoconfigure.data.redis.RedisReactiveHealthCon
org.springframework.boot.actuate.autoconfigure.endpoint.jackson.JacksonEndpointAutoConfiguration
org.springframework.boot.actuate.autoconfigure.endpoint.jmx.JmxEndpointAutoConfiguration
org.springframework.boot.actuate.autoconfigure.env.EnvironmentEndpointAutoConfiguration
org.springframework.boot.actuate.autoconfigure.integration.IntegrationGraphEndpointAutoConfiguration
org.springframework.boot.actuate.autoconfigure.logging.LogFileWebEndpointAutoConfiguration
org.springframework.boot.actuate.autoconfigure.logging.LoggersEndpointAutoConfiguration
org.springframework.boot.actuate.autoconfigure.logging.OpenTelemetryLoggingAutoConfiguration
@@ -41,7 +40,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.export.signalfx.SignalFxM
org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.export.stackdriver.StackdriverMetricsExportAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.jersey.JerseyServerMetricsAutoConfiguration
org.springframework.boot.actuate.autoconfigure.metrics.mongo.MongoMetricsAutoConfiguration

View File

@@ -14,9 +14,10 @@ dependencies {
implementation(project(":spring-boot-project:spring-boot-sql"))
optional(project(":spring-boot-project:spring-boot-actuator"))
optional(project(":spring-boot-project:spring-boot-actuator-autoconfigure"))
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional(project(":spring-boot-project:spring-boot-jdbc"))
optional(project(":spring-boot-project:spring-boot-metrics"))
optional(project(":spring-boot-project:spring-boot-rsocket"))
optional("org.springframework.integration:spring-integration-jdbc")
optional("org.springframework.integration:spring-integration-jmx")

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.integration;
package org.springframework.boot.integration.actuate.endpoint.autoconfigure;
import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint;
import org.springframework.boot.autoconfigure.AutoConfiguration;
@@ -23,6 +23,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.integration.actuate.endpoint.IntegrationGraphEndpoint;
import org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.integration.config.IntegrationConfigurationBeanFactoryPostProcessor;
import org.springframework.integration.graph.IntegrationGraphServer;
@@ -33,10 +34,11 @@ import org.springframework.integration.graph.IntegrationGraphServer;
*
* @author Tim Ysewyn
* @author Stephane Nicoll
* @since 2.1.0
* @since 4.0.0
*/
@AutoConfiguration(afterName = "org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration")
@ConditionalOnClass({ IntegrationGraphServer.class, IntegrationGraphEndpoint.class })
@AutoConfiguration(after = IntegrationAutoConfiguration.class)
@ConditionalOnClass({ IntegrationGraphServer.class, IntegrationGraphEndpoint.class,
ConditionalOnAvailableEndpoint.class })
@ConditionalOnBean(IntegrationConfigurationBeanFactoryPostProcessor.class)
@ConditionalOnAvailableEndpoint(IntegrationGraphEndpoint.class)
public class IntegrationGraphEndpointAutoConfiguration {

View File

@@ -15,6 +15,6 @@
*/
/**
* Auto-configuration for actuator Spring Integration concerns.
* Auto-configuration for Spring Integration actuator endpoint.
*/
package org.springframework.boot.actuate.autoconfigure.integration;
package org.springframework.boot.integration.actuate.endpoint.autoconfigure;

View File

@@ -14,14 +14,13 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.integration;
package org.springframework.boot.integration.actuate.metrics.autoconfigure;
import io.micrometer.core.instrument.MeterRegistry;
import org.springframework.boot.autoconfigure.AutoConfiguration;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration;
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
import org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration;
/**
* {@link EnableAutoConfiguration Auto-configuration} for Spring Integration's metrics.
@@ -31,8 +30,8 @@ import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
*
* @author Andy Wilkinson
*/
@AutoConfiguration(beforeName = "org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration",
after = { MetricsAutoConfiguration.class, CompositeMeterRegistryAutoConfiguration.class })
@AutoConfiguration(before = IntegrationAutoConfiguration.class,
afterName = "org.springframework.boot.metrics.autoconfigure.CompositeMeterRegistryAutoConfiguration")
class IntegrationMetricsAutoConfiguration {
}

View File

@@ -17,4 +17,4 @@
/**
* Auto-configuration for Spring Integration metrics.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.integration;
package org.springframework.boot.integration.actuate.metrics.autoconfigure;

View File

@@ -85,7 +85,7 @@ import org.springframework.util.StringUtils;
* @author Madhura Bhave
* @author Yong-Hyun Kim
* @author Yanming Zhou
* @since 1.1.0
* @since 4.0.0
*/
@AutoConfiguration(beforeName = "org.springframework.boot.rsocket.autoconfigure.RSocketMessagingAutoConfiguration",
after = { JmxAutoConfiguration.class, TaskSchedulingAutoConfiguration.class },

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2012-2022 the original author or authors.
* Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -32,7 +32,7 @@ import org.springframework.util.StringUtils;
*
* @author Vedran Pavic
* @author Andy Wilkinson
* @since 2.6.0
* @since 4.0.0
*/
public class IntegrationDataSourceScriptDatabaseInitializer extends DataSourceScriptDatabaseInitializer {

View File

@@ -30,7 +30,7 @@ import org.springframework.boot.sql.init.DatabaseInitializationMode;
* @author Vedran Pavic
* @author Stephane Nicoll
* @author Artem Bilan
* @since 2.0.0
* @since 4.0.0
*/
@ConfigurationProperties("spring.integration")
public class IntegrationProperties {

View File

@@ -23,7 +23,7 @@ import org.springframework.integration.scheduling.PollerMetadata;
* {@link PollerMetadata} whilst retaining default auto-configuration.
*
* @author Yanming Zhou
* @since 3.5.0
* @since 4.0.0
*/
@FunctionalInterface
public interface PollerMetadataCustomizer {

View File

@@ -1 +1,3 @@
org.springframework.boot.integration.actuate.endpoint.autoconfigure.IntegrationGraphEndpointAutoConfiguration
org.springframework.boot.integration.actuate.metrics.autoconfigure.IntegrationMetricsAutoConfiguration
org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.integration;
package org.springframework.boot.integration.actuate.endpoint;
import java.util.ArrayList;
import java.util.Collection;
@@ -23,7 +23,6 @@ import java.util.Map;
import org.junit.jupiter.api.Test;
import org.springframework.boot.integration.actuate.endpoint.IntegrationGraphEndpoint;
import org.springframework.boot.integration.actuate.endpoint.IntegrationGraphEndpoint.GraphDescriptor;
import org.springframework.integration.graph.Graph;
import org.springframework.integration.graph.IntegrationGraphServer;

View File

@@ -14,10 +14,9 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.integration;
package org.springframework.boot.integration.actuate.endpoint;
import org.springframework.boot.actuate.endpoint.web.test.WebEndpointTest;
import org.springframework.boot.integration.actuate.endpoint.IntegrationGraphEndpoint;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.MediaType;

View File

@@ -14,7 +14,7 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.integration;
package org.springframework.boot.integration.actuate.endpoint.autoconfigure;
import org.junit.jupiter.api.Test;

View File

@@ -14,16 +14,17 @@
* limitations under the License.
*/
package org.springframework.boot.actuate.autoconfigure.metrics.integration;
package org.springframework.boot.integration.actuate.metrics.autoconfigure;
import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import org.junit.jupiter.api.Test;
import org.springframework.boot.actuate.autoconfigure.integration.IntegrationGraphEndpointAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.test.MetricsRun;
import org.springframework.boot.autoconfigure.AutoConfigurations;
import org.springframework.boot.integration.actuate.endpoint.autoconfigure.IntegrationGraphEndpointAutoConfiguration;
import org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration;
import org.springframework.boot.metrics.autoconfigure.MetricsAutoConfiguration;
import org.springframework.boot.test.context.runner.ApplicationContextRunner;
import static org.assertj.core.api.Assertions.assertThat;
@@ -37,9 +38,11 @@ class IntegrationMetricsAutoConfigurationTests {
private final ApplicationContextRunner contextRunner = new ApplicationContextRunner()
.withConfiguration(AutoConfigurations.of(IntegrationAutoConfiguration.class,
IntegrationGraphEndpointAutoConfiguration.class, IntegrationMetricsAutoConfiguration.class))
.with(MetricsRun.simple())
.withPropertyValues("management.metrics.tags.someTag=someValue");
IntegrationGraphEndpointAutoConfiguration.class, IntegrationMetricsAutoConfiguration.class,
MetricsAutoConfiguration.class))
.withBean(SimpleMeterRegistry.class)
.withPropertyValues("management.metrics.tags.someTag=someValue",
"management.metrics.use-global-registry=false");
@Test
void integrationMetersAreInstrumented() {