diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfiguration.java index f6610bd8d2..a9197b7298 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 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. @@ -17,12 +17,12 @@ package org.springframework.boot.actuate.autoconfigure.integration; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; -import org.springframework.boot.actuate.integration.IntegrationGraphEndpoint; import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; 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.context.annotation.Bean; import org.springframework.integration.config.IntegrationConfigurationBeanFactoryPostProcessor; import org.springframework.integration.graph.IntegrationGraphServer; @@ -36,7 +36,7 @@ import org.springframework.integration.graph.IntegrationGraphServer; * @since 2.1.0 */ @AutoConfiguration(afterName = "org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration") -@ConditionalOnClass(IntegrationGraphServer.class) +@ConditionalOnClass({ IntegrationGraphServer.class, IntegrationGraphEndpoint.class }) @ConditionalOnBean(IntegrationConfigurationBeanFactoryPostProcessor.class) @ConditionalOnAvailableEndpoint(IntegrationGraphEndpoint.class) public class IntegrationGraphEndpointAutoConfiguration { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfigurationTests.java index 8962001a2c..3078dfad1f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/integration/IntegrationGraphEndpointAutoConfigurationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 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. @@ -18,9 +18,9 @@ package org.springframework.boot.actuate.autoconfigure.integration; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.integration.IntegrationGraphEndpoint; import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration; +import org.springframework.boot.integration.actuate.endpoint.IntegrationGraphEndpoint; import org.springframework.boot.integration.autoconfigure.IntegrationAutoConfiguration; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.integration.graph.IntegrationGraphServer; diff --git a/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/integration/IntegrationGraphEndpointDocumentationTests.java b/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/integration/IntegrationGraphEndpointDocumentationTests.java index fa7889eefb..bd136805f1 100644 --- a/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/integration/IntegrationGraphEndpointDocumentationTests.java +++ b/spring-boot-project/spring-boot-actuator-docs/src/test/java/org/springframework/boot/actuate/docs/integration/IntegrationGraphEndpointDocumentationTests.java @@ -19,7 +19,7 @@ package org.springframework.boot.actuate.docs.integration; import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.docs.MockMvcEndpointDocumentationTests; -import org.springframework.boot.actuate.integration.IntegrationGraphEndpoint; +import org.springframework.boot.integration.actuate.endpoint.IntegrationGraphEndpoint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.http.HttpStatus; diff --git a/spring-boot-project/spring-boot-actuator/build.gradle b/spring-boot-project/spring-boot-actuator/build.gradle index 0bf5515a84..5bf5c65a61 100644 --- a/spring-boot-project/spring-boot-actuator/build.gradle +++ b/spring-boot-project/spring-boot-actuator/build.gradle @@ -26,7 +26,6 @@ dependencies { optional(project(":spring-boot-project:spring-boot-activemq")) optional(project(":spring-boot-project:spring-boot-flyway")) optional(project(":spring-boot-project:spring-boot-http-converter")) - optional(project(":spring-boot-project:spring-boot-integration")) optional(project(":spring-boot-project:spring-boot-jdbc")) optional(project(":spring-boot-project:spring-boot-jetty")) optional(project(":spring-boot-project:spring-boot-jsonb")) diff --git a/spring-boot-project/spring-boot-integration/build.gradle b/spring-boot-project/spring-boot-integration/build.gradle index 6a731cc03b..46a328eff5 100644 --- a/spring-boot-project/spring-boot-integration/build.gradle +++ b/spring-boot-project/spring-boot-integration/build.gradle @@ -14,6 +14,7 @@ dependencies { implementation(project(":spring-boot-project:spring-boot-sql")) + optional(project(":spring-boot-project:spring-boot-actuator")) optional(project(":spring-boot-project:spring-boot-autoconfigure")) optional(project(":spring-boot-project:spring-boot-jdbc")) optional(project(":spring-boot-project:spring-boot-rsocket")) @@ -25,6 +26,8 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-rsocket")) testImplementation(project(":spring-boot-project:spring-boot-test")) testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + testImplementation(testFixtures(project(":spring-boot-project:spring-boot-actuator"))) + testImplementation("org.springframework:spring-web") testRuntimeOnly(project(":spring-boot-project:spring-boot-reactor-netty")) testRuntimeOnly("ch.qos.logback:logback-classic") diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpoint.java b/spring-boot-project/spring-boot-integration/src/main/java/org/springframework/boot/integration/actuate/endpoint/IntegrationGraphEndpoint.java similarity index 95% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpoint.java rename to spring-boot-project/spring-boot-integration/src/main/java/org/springframework/boot/integration/actuate/endpoint/IntegrationGraphEndpoint.java index 93d0e1669e..13df056965 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpoint.java +++ b/spring-boot-project/spring-boot-integration/src/main/java/org/springframework/boot/integration/actuate/endpoint/IntegrationGraphEndpoint.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 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. @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.integration; +package org.springframework.boot.integration.actuate.endpoint; import java.util.Collection; import java.util.Map; @@ -32,7 +32,7 @@ import org.springframework.integration.graph.LinkNode; * {@link Endpoint @Endpoint} to expose the Spring Integration graph. * * @author Tim Ysewyn - * @since 2.1.0 + * @since 4.0.0 */ @Endpoint(id = "integrationgraph") public class IntegrationGraphEndpoint { diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/integration/package-info.java b/spring-boot-project/spring-boot-integration/src/main/java/org/springframework/boot/integration/actuate/endpoint/package-info.java similarity index 77% rename from spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/integration/package-info.java rename to spring-boot-project/spring-boot-integration/src/main/java/org/springframework/boot/integration/actuate/endpoint/package-info.java index 6581e91050..1a74173836 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/integration/package-info.java +++ b/spring-boot-project/spring-boot-integration/src/main/java/org/springframework/boot/integration/actuate/endpoint/package-info.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2019 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. @@ -15,6 +15,6 @@ */ /** - * Actuator support for Spring Integration. + * Actuator endpoint for Spring Integration. */ -package org.springframework.boot.actuate.integration; +package org.springframework.boot.integration.actuate.endpoint; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointTests.java b/spring-boot-project/spring-boot-integration/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointTests.java similarity index 90% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointTests.java rename to spring-boot-project/spring-boot-integration/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointTests.java index 6ddb464dff..6cccbb4c07 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointTests.java +++ b/spring-boot-project/spring-boot-integration/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 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. @@ -23,7 +23,8 @@ import java.util.Map; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.integration.IntegrationGraphEndpoint.GraphDescriptor; +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; import org.springframework.integration.graph.IntegrationNode; diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointWebIntegrationTests.java b/spring-boot-project/spring-boot-integration/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointWebIntegrationTests.java similarity index 94% rename from spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointWebIntegrationTests.java rename to spring-boot-project/spring-boot-integration/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointWebIntegrationTests.java index 6ee57ee54b..900fef1535 100644 --- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointWebIntegrationTests.java +++ b/spring-boot-project/spring-boot-integration/src/test/java/org/springframework/boot/actuate/integration/IntegrationGraphEndpointWebIntegrationTests.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 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. @@ -17,6 +17,7 @@ package org.springframework.boot.actuate.integration; 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;