From 7875aaa308142f75b9f7960f48acf3ba22ee9f2e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 5 Jun 2025 17:37:50 +0100 Subject: [PATCH] Create spring-boot-cloudfoundry module Closes gh-46152 --- settings.gradle | 1 + .../build.gradle | 2 +- ...ot.autoconfigure.AutoConfiguration.imports | 2 - .../main/resources/META-INF/spring.factories | 4 - .../ConditionalOnAvailableEndpointTests.java | 6 - .../SbomEndpointAutoConfigurationTests.java | 9 -- .../spring-boot-cloudfoundry/build.gradle | 54 +++++++++ .../actuate/autoconfigure}/AccessLevel.java | 4 +- .../CloudFoundryAuthorizationException.java | 4 +- ...dryEndpointExposureOutcomeContributor.java | 2 +- .../CloudFoundryEndpointFilter.java | 2 +- .../CloudFoundryWebEndpointDiscoverer.java | 28 +---- .../EndpointCloudFoundryExtension.java | 4 +- .../autoconfigure}/SecurityResponse.java | 4 +- .../actuate/autoconfigure}/Token.java | 6 +- .../actuate/autoconfigure}/package-info.java | 2 +- ...dryReactiveHealthEndpointWebExtension.java | 6 +- .../CloudFoundrySecurityInterceptor.java | 10 +- ...dFoundryWebFluxEndpointHandlerMapping.java | 8 +- ...CloudFoundryActuatorAutoConfiguration.java | 8 +- .../ReactiveCloudFoundrySecurityService.java | 8 +- .../reactive/ReactiveTokenValidator.java | 8 +- .../autoconfigure}/reactive/package-info.java | 2 +- ...CloudFoundryActuatorAutoConfiguration.java | 6 +- ...loudFoundryHealthEndpointWebExtension.java | 6 +- .../CloudFoundryInfoEndpointWebExtension.java | 6 +- .../CloudFoundrySecurityInterceptor.java | 12 +- .../servlet/CloudFoundrySecurityService.java | 8 +- ...undryWebEndpointServletHandlerMapping.java | 8 +- ...SkipSslVerificationHttpRequestFactory.java | 2 +- .../servlet/TokenValidator.java | 8 +- .../autoconfigure}/servlet/package-info.java | 2 +- .../main/resources/META-INF/spring.factories | 3 + ...ot.autoconfigure.AutoConfiguration.imports | 2 + .../autoconfigure}/AccessLevelTests.java | 2 +- ...oudFoundryAuthorizationExceptionTests.java | 4 +- ...ryConditionalOnAvailableEndpointTests.java | 110 ++++++++++++++++++ .../CloudFoundryEndpointFilterTests.java | 2 +- ...loudFoundryWebEndpointDiscovererTests.java | 4 +- .../actuate/autoconfigure}/TokenTests.java | 4 +- ...activeHealthEndpointWebExtensionTests.java | 2 +- ...dryWebFluxEndpointHandlerMappingTests.java | 6 +- ...oundryWebFluxEndpointIntegrationTests.java | 8 +- ...FoundryActuatorAutoConfigurationTests.java | 4 +- ...eCloudFoundrySecurityInterceptorTests.java | 8 +- ...ctiveCloudFoundrySecurityServiceTests.java | 8 +- .../reactive/ReactiveTokenValidatorTests.java | 8 +- ...FoundryActuatorAutoConfigurationTests.java | 2 +- ...oundryHealthEndpointWebExtensionTests.java | 2 +- ...dFoundryInfoEndpointWebExtensionTests.java | 2 +- ...FoundryMvcWebEndpointIntegrationTests.java | 8 +- .../CloudFoundrySecurityInterceptorTests.java | 8 +- .../CloudFoundrySecurityServiceTests.java | 8 +- ...WebEndpointServletHandlerMappingTests.java | 6 +- ...slVerificationHttpRequestFactoryTests.java | 2 +- .../servlet/TokenValidatorTests.java | 8 +- .../actuate/autoconfigure}/reactive/test.jks | Bin .../actuate/autoconfigure}/servlet/test.jks | Bin .../spring-boot-dependencies/build.gradle | 1 + 59 files changed, 296 insertions(+), 168 deletions(-) create mode 100644 spring-boot-project/spring-boot-cloudfoundry/build.gradle rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/AccessLevel.java (94%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryAuthorizationException.java (96%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryEndpointExposureOutcomeContributor.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryEndpointFilter.java (94%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryWebEndpointDiscoverer.java (74%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/EndpointCloudFoundryExtension.java (95%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/SecurityResponse.java (93%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/Token.java (94%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/package-info.java (90%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java (92%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/CloudFoundrySecurityInterceptor.java (90%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java (95%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveCloudFoundrySecurityService.java (93%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveTokenValidator.java (93%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/package-info.java (90%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryActuatorAutoConfiguration.java (98%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryHealthEndpointWebExtension.java (91%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryInfoEndpointWebExtension.java (87%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundrySecurityInterceptor.java (87%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundrySecurityService.java (92%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryWebEndpointServletHandlerMapping.java (95%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/SkipSslVerificationHttpRequestFactory.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/TokenValidator.java (92%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/package-info.java (90%) create mode 100644 spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring.factories create mode 100644 spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/AccessLevelTests.java (95%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryAuthorizationExceptionTests.java (93%) create mode 100644 spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryConditionalOnAvailableEndpointTests.java rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryEndpointFilterTests.java (96%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/CloudFoundryWebEndpointDiscovererTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/TokenTests.java (96%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java (98%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java (82%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java (98%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java (94%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveCloudFoundrySecurityServiceTests.java (96%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/ReactiveTokenValidatorTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryActuatorAutoConfigurationTests.java (99%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryHealthEndpointWebExtensionTests.java (98%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryInfoEndpointWebExtensionTests.java (98%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java (96%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundrySecurityInterceptorTests.java (94%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundrySecurityServiceTests.java (96%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java (82%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/SkipSslVerificationHttpRequestFactoryTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/TokenValidatorTests.java (97%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/resources/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/resources/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/reactive/test.jks (100%) rename spring-boot-project/{spring-boot-actuator-autoconfigure-all/src/test/resources/org/springframework/boot/actuate/autoconfigure/cloudfoundry => spring-boot-cloudfoundry/src/test/resources/org/springframework/boot/cloudfoundry/actuate/autoconfigure}/servlet/test.jks (100%) diff --git a/settings.gradle b/settings.gradle index 850a8031034..aba4ebe36fc 100644 --- a/settings.gradle +++ b/settings.gradle @@ -68,6 +68,7 @@ include "spring-boot-project:spring-boot-autoconfigure" include "spring-boot-project:spring-boot-batch" include "spring-boot-project:spring-boot-cache" include "spring-boot-project:spring-boot-cassandra" +include "spring-boot-project:spring-boot-cloudfoundry" include "spring-boot-project:spring-boot-couchbase" include "spring-boot-project:spring-boot-data-cassandra" include "spring-boot-project:spring-boot-data-commons" diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle index 9dabd8e25ca..8cea494b81d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/build.gradle @@ -121,12 +121,12 @@ dependencies { testImplementation(project(":spring-boot-project:spring-boot-web-server-test")) testImplementation(testFixtures(project(":spring-boot-project:spring-boot-metrics"))) testImplementation(testFixtures(project(":spring-boot-project:spring-boot-web-server"))) + testImplementation("com.squareup.okhttp3:mockwebserver") testImplementation("io.micrometer:micrometer-observation-test") testImplementation("io.micrometer:micrometer-registry-prometheus") testImplementation("io.opentelemetry:opentelemetry-exporter-common") testImplementation("io.projectreactor:reactor-test") testImplementation("io.prometheus:prometheus-metrics-exposition-formats") - testImplementation("com.squareup.okhttp3:mockwebserver") testImplementation("jakarta.xml.bind:jakarta.xml.bind-api") testImplementation("org.apache.activemq:artemis-jakarta-client") testImplementation("org.apache.activemq:artemis-jakarta-server") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index dc63be11aa4..30bd7f6ab01 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,5 +1,3 @@ -org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive.ReactiveCloudFoundryActuatorAutoConfiguration -org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryActuatorAutoConfiguration org.springframework.boot.actuate.autoconfigure.security.reactive.ReactiveManagementWebSecurityAutoConfiguration org.springframework.boot.actuate.autoconfigure.security.servlet.ManagementWebSecurityAutoConfiguration org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories index 48b5e53a744..6c182b95249 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring.factories @@ -1,7 +1,3 @@ -# Endpoint Exposure Outcome Contributors -org.springframework.boot.actuate.autoconfigure.endpoint.condition.EndpointExposureOutcomeContributor=\ -org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryEndpointExposureOutcomeContributor - # Failure Analyzers org.springframework.boot.diagnostics.FailureAnalyzer=\ org.springframework.boot.actuate.autoconfigure.health.NoSuchHealthContributorFailureAnalyzer diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java index fb5637614df..9f8ea520d87 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java @@ -229,12 +229,6 @@ class ConditionalOnAvailableEndpointTests { }); } - @Test - void outcomeOnCloudFoundryShouldMatchAll() { - this.contextRunner.withPropertyValues("VCAP_APPLICATION:---") - .run((context) -> assertThat(context).hasBean("info").hasBean("health").hasBean("spring").hasBean("test")); - } - @Test // gh-21044 void outcomeWhenIncludeAllShouldMatchDashedEndpoint() { this.contextRunner.withUserConfiguration(DashedEndpointConfiguration.class) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/sbom/SbomEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/sbom/SbomEndpointAutoConfigurationTests.java index 36086f2094a..2d7dcce0e50 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/sbom/SbomEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/sbom/SbomEndpointAutoConfigurationTests.java @@ -42,15 +42,6 @@ class SbomEndpointAutoConfigurationTests { .hasSingleBean(SbomEndpointWebExtension.class)); } - @Test - void runWhenCloudFoundryExposedShouldHaveEndpointBeanAndWebExtension() { - this.contextRunner - .withPropertyValues("management.endpoints.cloud-foundry.exposure.include=sbom", - "spring.main.cloud-platform=cloud_foundry") - .run((context) -> assertThat(context).hasSingleBean(SbomEndpoint.class) - .hasSingleBean(SbomEndpointWebExtension.class)); - } - @Test void runWhenNotExposedShouldNotHaveEndpointBean() { this.contextRunner.run((context) -> assertThat(context).doesNotHaveBean(SbomEndpoint.class)); diff --git a/spring-boot-project/spring-boot-cloudfoundry/build.gradle b/spring-boot-project/spring-boot-cloudfoundry/build.gradle new file mode 100644 index 00000000000..820c7c79578 --- /dev/null +++ b/spring-boot-project/spring-boot-cloudfoundry/build.gradle @@ -0,0 +1,54 @@ +/* + * Copyright 2012-present 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +plugins { + id "java-library" + id "org.springframework.boot.auto-configuration" + id "org.springframework.boot.deployed" + id "org.springframework.boot.optional-dependencies" +} + +description = "Spring Boot Cloud Foundry" + +dependencies { + api(project(":spring-boot-project:spring-boot")) + api(project(":spring-boot-project:spring-boot-actuator")) + api(project(":spring-boot-project:spring-boot-actuator-autoconfigure")) + + implementation(project(":spring-boot-project:spring-boot-security")) + + optional(project(":spring-boot-project:spring-boot-restclient")) + optional(project(":spring-boot-project:spring-boot-webclient")) + optional(project(":spring-boot-project:spring-boot-webflux")) + optional(project(":spring-boot-project:spring-boot-webmvc")) + optional("io.projectreactor:reactor-core") + optional("io.projectreactor.netty:reactor-netty-http") + optional("jakarta.servlet:jakarta.servlet-api") + + testImplementation(project(":spring-boot-project:spring-boot-http-converter")) + testImplementation(project(":spring-boot-project:spring-boot-jackson")) + testImplementation(project(":spring-boot-project:spring-boot-reactor-netty")) + testImplementation(project(":spring-boot-project:spring-boot-restclient-test")) + testImplementation(project(":spring-boot-project:spring-boot-test")) + testImplementation(project(":spring-boot-project:spring-boot-tomcat")) + testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")) + testImplementation("com.squareup.okhttp3:mockwebserver") + testImplementation("io.projectreactor:reactor-test") + testImplementation("org.springframework.security:spring-security-test") + + testRuntimeOnly("ch.qos.logback:logback-classic") +} diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/AccessLevel.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/AccessLevel.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/AccessLevel.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/AccessLevel.java index 28736bdd8a4..2a6c8cee8d8 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/AccessLevel.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/AccessLevel.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.util.Arrays; import java.util.List; @@ -24,7 +24,7 @@ import java.util.List; * endpoints. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ public enum AccessLevel { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryAuthorizationException.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryAuthorizationException.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryAuthorizationException.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryAuthorizationException.java index 2bbaf44a24f..e02eeceec2f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryAuthorizationException.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryAuthorizationException.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import org.springframework.http.HttpStatus; @@ -22,7 +22,7 @@ import org.springframework.http.HttpStatus; * Authorization exceptions thrown to limit access to the endpoints. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ public class CloudFoundryAuthorizationException extends RuntimeException { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointExposureOutcomeContributor.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointExposureOutcomeContributor.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointExposureOutcomeContributor.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointExposureOutcomeContributor.java index f30ea80e1a1..b6e0e7076ef 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointExposureOutcomeContributor.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointExposureOutcomeContributor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.util.Set; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointFilter.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointFilter.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointFilter.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointFilter.java index 4b18347877f..d4e6f4ef782 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointFilter.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointFilter.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import org.springframework.boot.actuate.endpoint.EndpointFilter; import org.springframework.boot.actuate.endpoint.annotation.DiscovererEndpointFilter; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryWebEndpointDiscoverer.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryWebEndpointDiscoverer.java similarity index 74% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryWebEndpointDiscoverer.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryWebEndpointDiscoverer.java index f44509c4157..438a41b73de 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryWebEndpointDiscoverer.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryWebEndpointDiscoverer.java @@ -14,16 +14,14 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.util.Collection; -import java.util.Collections; import java.util.List; import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryWebEndpointDiscoverer.CloudFoundryWebEndpointDiscovererRuntimeHints; import org.springframework.boot.actuate.endpoint.EndpointFilter; import org.springframework.boot.actuate.endpoint.OperationFilter; import org.springframework.boot.actuate.endpoint.invoke.OperationInvokerAdvisor; @@ -35,6 +33,7 @@ import org.springframework.boot.actuate.endpoint.web.WebOperation; import org.springframework.boot.actuate.endpoint.web.annotation.EndpointWebExtension; import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer; import org.springframework.boot.actuate.health.HealthEndpoint; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryWebEndpointDiscoverer.CloudFoundryWebEndpointDiscovererRuntimeHints; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.ImportRuntimeHints; import org.springframework.core.annotation.MergedAnnotations; @@ -44,31 +43,11 @@ import org.springframework.core.annotation.MergedAnnotations; * extensions for the {@link HealthEndpoint}. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ @ImportRuntimeHints(CloudFoundryWebEndpointDiscovererRuntimeHints.class) public class CloudFoundryWebEndpointDiscoverer extends WebEndpointDiscoverer { - /** - * Create a new {@link WebEndpointDiscoverer} instance. - * @param applicationContext the source application context - * @param parameterValueMapper the parameter value mapper - * @param endpointMediaTypes the endpoint media types - * @param endpointPathMappers the endpoint path mappers - * @param invokerAdvisors invoker advisors to apply - * @param endpointFilters endpoint filters to apply - * @deprecated since 3.4.0 for removal in 4.0.0 in favor of - * {@link #CloudFoundryWebEndpointDiscoverer(ApplicationContext, ParameterValueMapper, EndpointMediaTypes, List, Collection, Collection, Collection)} - */ - @Deprecated(since = "3.4.0", forRemoval = true) - public CloudFoundryWebEndpointDiscoverer(ApplicationContext applicationContext, - ParameterValueMapper parameterValueMapper, EndpointMediaTypes endpointMediaTypes, - List endpointPathMappers, Collection invokerAdvisors, - Collection> endpointFilters) { - this(applicationContext, parameterValueMapper, endpointMediaTypes, endpointPathMappers, invokerAdvisors, - endpointFilters, Collections.emptyList()); - } - /** * Create a new {@link WebEndpointDiscoverer} instance. * @param applicationContext the source application context @@ -78,7 +57,6 @@ public class CloudFoundryWebEndpointDiscoverer extends WebEndpointDiscoverer { * @param invokerAdvisors invoker advisors to apply * @param endpointFilters endpoint filters to apply * @param operationFilters operation filters to apply - * @since 3.4.0 */ public CloudFoundryWebEndpointDiscoverer(ApplicationContext applicationContext, ParameterValueMapper parameterValueMapper, EndpointMediaTypes endpointMediaTypes, diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/EndpointCloudFoundryExtension.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/EndpointCloudFoundryExtension.java similarity index 95% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/EndpointCloudFoundryExtension.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/EndpointCloudFoundryExtension.java index 64419ce0a01..6ff36a15153 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/EndpointCloudFoundryExtension.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/EndpointCloudFoundryExtension.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; @@ -32,7 +32,7 @@ import org.springframework.core.annotation.AliasFor; * * @author Phillip Webb * @author Madhura Bhave - * @since 2.2.0 + * @since 4.0.0 */ @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/SecurityResponse.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/SecurityResponse.java similarity index 93% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/SecurityResponse.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/SecurityResponse.java index fb55ee976b4..7a10296d0e7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/SecurityResponse.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/SecurityResponse.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import org.springframework.http.HttpStatus; @@ -22,7 +22,7 @@ import org.springframework.http.HttpStatus; * Response from the Cloud Foundry security interceptors. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ public class SecurityResponse { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/Token.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/Token.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/Token.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/Token.java index 7401682c43c..1159e7b323f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/Token.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/Token.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.nio.charset.StandardCharsets; import java.util.Base64; import java.util.List; import java.util.Map; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.json.JsonParserFactory; import org.springframework.util.StringUtils; @@ -29,7 +29,7 @@ import org.springframework.util.StringUtils; * The JSON web token provided with each request that originates from Cloud Foundry. * * @author Madhura Bhave - * @since 1.5.22 + * @since 4.0.0 */ public class Token { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/package-info.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/package-info.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/package-info.java index b700dbb439a..6ffcb9f72b8 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/package-info.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for actuator Cloud Foundry concerns. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java similarity index 92% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java index ecab820d3db..2946a939a1d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryReactiveHealthEndpointWebExtension.java @@ -14,11 +14,10 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import reactor.core.publisher.Mono; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.EndpointCloudFoundryExtension; import org.springframework.boot.actuate.endpoint.ApiVersion; import org.springframework.boot.actuate.endpoint.SecurityContext; import org.springframework.boot.actuate.endpoint.annotation.EndpointExtension; @@ -29,13 +28,14 @@ import org.springframework.boot.actuate.endpoint.web.WebEndpointResponse; import org.springframework.boot.actuate.health.HealthComponent; import org.springframework.boot.actuate.health.HealthEndpoint; import org.springframework.boot.actuate.health.ReactiveHealthEndpointWebExtension; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.EndpointCloudFoundryExtension; /** * Reactive {@link EndpointExtension @EndpointExtension} for the {@link HealthEndpoint} * that always exposes full health details. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ @EndpointCloudFoundryExtension(endpoint = HealthEndpoint.class) public class CloudFoundryReactiveHealthEndpointWebExtension { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundrySecurityInterceptor.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundrySecurityInterceptor.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundrySecurityInterceptor.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundrySecurityInterceptor.java index c3cc4a515d7..873c3b9a13d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundrySecurityInterceptor.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundrySecurityInterceptor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.util.Locale; @@ -22,10 +22,10 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import reactor.core.publisher.Mono; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.SecurityResponse; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.Token; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.SecurityResponse; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.Token; import org.springframework.http.HttpStatus; import org.springframework.http.server.reactive.ServerHttpRequest; import org.springframework.util.StringUtils; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java similarity index 95% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java index 21dd1d15765..3b4ac8b1a86 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointHandlerMapping.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.util.Collection; import java.util.Collections; @@ -30,9 +30,6 @@ import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.aot.hint.annotation.Reflective; import org.springframework.aot.hint.annotation.ReflectiveRuntimeHintsRegistrar; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.SecurityResponse; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive.CloudFoundryWebFluxEndpointHandlerMapping.CloudFoundryWebFluxEndpointHandlerMappingRuntimeHints; import org.springframework.boot.actuate.endpoint.EndpointId; import org.springframework.boot.actuate.endpoint.ExposableEndpoint; import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver; @@ -41,6 +38,9 @@ import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes; import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; import org.springframework.boot.actuate.endpoint.web.Link; import org.springframework.boot.actuate.endpoint.web.WebOperation; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.SecurityResponse; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive.CloudFoundryWebFluxEndpointHandlerMapping.CloudFoundryWebFluxEndpointHandlerMappingRuntimeHints; import org.springframework.boot.webflux.actuate.endpoint.web.AbstractWebFluxEndpointHandlerMapping; import org.springframework.context.annotation.ImportRuntimeHints; import org.springframework.http.HttpStatus; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java index 68f1517a883..a435d4598d2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundryActuatorAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.util.ArrayList; import java.util.Arrays; @@ -26,8 +26,6 @@ import java.util.function.Supplier; import org.springframework.beans.BeansException; import org.springframework.beans.factory.ObjectProvider; import org.springframework.beans.factory.config.BeanPostProcessor; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryWebEndpointDiscoverer; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryInfoEndpointWebExtension; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration; @@ -52,6 +50,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatfo import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.cloud.CloudPlatform; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryWebEndpointDiscoverer; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet.CloudFoundryInfoEndpointWebExtension; import org.springframework.boot.info.GitProperties; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -73,7 +73,7 @@ import org.springframework.web.server.WebFilter; * Cloud Foundry to use in a reactive environment. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ @AutoConfiguration(after = { HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class }) @ConditionalOnBooleanProperty(name = "management.cloudfoundry.enabled", matchIfMissing = true) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityService.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityService.java similarity index 93% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityService.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityService.java index e0492af2f7c..faee9be8028 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityService.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.util.HashMap; import java.util.List; @@ -27,9 +27,9 @@ import reactor.netty.http.Http11SslContextSpec; import reactor.netty.http.client.HttpClient; import reactor.netty.tcp.SslProvider.GenericSslContextSpec; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.core.ParameterizedTypeReference; import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatusCode; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveTokenValidator.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveTokenValidator.java similarity index 93% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveTokenValidator.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveTokenValidator.java index 1308f0fd84d..cc2049b668c 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveTokenValidator.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveTokenValidator.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.security.GeneralSecurityException; import java.security.KeyFactory; @@ -30,9 +30,9 @@ import java.util.concurrent.TimeUnit; import reactor.core.publisher.Mono; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.Token; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.Token; /** * Validator used to ensure that a signed {@link Token} has not been tampered with. diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/package-info.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/package-info.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/package-info.java index cb3ef959bc4..1f437741da3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/package-info.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for actuator Cloud Foundry concerns using WebFlux. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryActuatorAutoConfiguration.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryActuatorAutoConfiguration.java index 5678b529b00..d4f5ec62409 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryActuatorAutoConfiguration.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.ArrayList; import java.util.Arrays; @@ -23,7 +23,6 @@ import java.util.Collections; import java.util.List; import org.springframework.beans.factory.ObjectProvider; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryWebEndpointDiscoverer; import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.info.InfoEndpointAutoConfiguration; @@ -48,6 +47,7 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnCloudPlatfo import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication; import org.springframework.boot.cloud.CloudPlatform; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryWebEndpointDiscoverer; import org.springframework.boot.info.GitProperties; import org.springframework.boot.restclient.RestTemplateBuilder; import org.springframework.context.ApplicationContext; @@ -73,7 +73,7 @@ import org.springframework.web.servlet.DispatcherServlet; * Cloud Foundry to use. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ @AutoConfiguration(after = { HealthEndpointAutoConfiguration.class, InfoEndpointAutoConfiguration.class }, afterName = "org.springframework.boot.servlet.actuate.autoconfigure.ServletManagementContextAutoConfiguration") diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtension.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryHealthEndpointWebExtension.java similarity index 91% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtension.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryHealthEndpointWebExtension.java index 3d28bc8fd52..d81a6864785 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtension.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryHealthEndpointWebExtension.java @@ -14,9 +14,8 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.EndpointCloudFoundryExtension; import org.springframework.boot.actuate.endpoint.ApiVersion; import org.springframework.boot.actuate.endpoint.SecurityContext; import org.springframework.boot.actuate.endpoint.annotation.EndpointExtension; @@ -27,13 +26,14 @@ import org.springframework.boot.actuate.endpoint.web.WebEndpointResponse; import org.springframework.boot.actuate.health.HealthComponent; import org.springframework.boot.actuate.health.HealthEndpoint; import org.springframework.boot.actuate.health.HealthEndpointWebExtension; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.EndpointCloudFoundryExtension; /** * {@link EndpointExtension @EndpointExtension} for the {@link HealthEndpoint} that always * exposes full health details. * * @author Madhura Bhave - * @since 2.0.0 + * @since 4.0.0 */ @EndpointCloudFoundryExtension(endpoint = HealthEndpoint.class) public class CloudFoundryHealthEndpointWebExtension { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtension.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryInfoEndpointWebExtension.java similarity index 87% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtension.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryInfoEndpointWebExtension.java index 7e3e2bc14f7..4d36d253cf0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtension.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryInfoEndpointWebExtension.java @@ -14,21 +14,21 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Map; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.EndpointCloudFoundryExtension; import org.springframework.boot.actuate.endpoint.annotation.EndpointExtension; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; import org.springframework.boot.actuate.info.InfoEndpoint; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.EndpointCloudFoundryExtension; /** * {@link EndpointExtension @EndpointExtension} for the {@link InfoEndpoint} that always * exposes full git details. * * @author Madhura Bhave - * @since 2.2.0 + * @since 4.0.0 */ @EndpointCloudFoundryExtension(endpoint = InfoEndpoint.class) public class CloudFoundryInfoEndpointWebExtension { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityInterceptor.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityInterceptor.java similarity index 87% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityInterceptor.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityInterceptor.java index f5562d24a78..768436b5223 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityInterceptor.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityInterceptor.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Locale; @@ -22,12 +22,12 @@ import jakarta.servlet.http.HttpServletRequest; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.SecurityResponse; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.Token; import org.springframework.boot.actuate.endpoint.EndpointId; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.SecurityResponse; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.Token; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.util.StringUtils; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityService.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityService.java similarity index 92% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityService.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityService.java index 17d86d217b1..6161121b8b9 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityService.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityService.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.net.URI; import java.net.URISyntaxException; @@ -22,9 +22,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.restclient.RestTemplateBuilder; import org.springframework.http.HttpStatus; import org.springframework.http.RequestEntity; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryWebEndpointServletHandlerMapping.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryWebEndpointServletHandlerMapping.java similarity index 95% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryWebEndpointServletHandlerMapping.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryWebEndpointServletHandlerMapping.java index d270918b72d..85d84884d2e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryWebEndpointServletHandlerMapping.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryWebEndpointServletHandlerMapping.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Collection; import java.util.Collections; @@ -32,9 +32,6 @@ import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.RuntimeHintsRegistrar; import org.springframework.aot.hint.annotation.Reflective; import org.springframework.aot.hint.annotation.ReflectiveRuntimeHintsRegistrar; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.SecurityResponse; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryWebEndpointServletHandlerMapping.CloudFoundryWebEndpointServletHandlerMappingRuntimeHints; import org.springframework.boot.actuate.endpoint.EndpointId; import org.springframework.boot.actuate.endpoint.ExposableEndpoint; import org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver; @@ -43,6 +40,9 @@ import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes; import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; import org.springframework.boot.actuate.endpoint.web.Link; import org.springframework.boot.actuate.endpoint.web.WebOperation; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.SecurityResponse; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet.CloudFoundryWebEndpointServletHandlerMapping.CloudFoundryWebEndpointServletHandlerMappingRuntimeHints; import org.springframework.boot.webmvc.actuate.endpoint.web.AbstractWebMvcEndpointHandlerMapping; import org.springframework.context.annotation.ImportRuntimeHints; import org.springframework.http.HttpStatus; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactory.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/SkipSslVerificationHttpRequestFactory.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactory.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/SkipSslVerificationHttpRequestFactory.java index 93edf84f8b8..95458c638b2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactory.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/SkipSslVerificationHttpRequestFactory.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.io.IOException; import java.net.HttpURLConnection; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/TokenValidator.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/TokenValidator.java similarity index 92% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/TokenValidator.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/TokenValidator.java index 03f3ef211e8..edd66f3d69d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/TokenValidator.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/TokenValidator.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.security.GeneralSecurityException; import java.security.KeyFactory; @@ -27,9 +27,9 @@ import java.util.Base64; import java.util.Map; import java.util.concurrent.TimeUnit; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.Token; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.Token; /** * Validator used to ensure that a signed {@link Token} has not been tampered with. diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/package-info.java b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/package-info.java similarity index 90% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/package-info.java rename to spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/package-info.java index 499fbcb181b..b885e6aeb50 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/package-info.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/package-info.java @@ -17,4 +17,4 @@ /** * Auto-configuration for actuator Cloud Foundry concerns using Spring MVC. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; diff --git a/spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring.factories new file mode 100644 index 00000000000..9b604d30c16 --- /dev/null +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring.factories @@ -0,0 +1,3 @@ +# Endpoint Exposure Outcome Contributors +org.springframework.boot.actuate.autoconfigure.endpoint.condition.EndpointExposureOutcomeContributor=\ +org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryEndpointExposureOutcomeContributor diff --git a/spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports new file mode 100644 index 00000000000..4da1589cb99 --- /dev/null +++ b/spring-boot-project/spring-boot-cloudfoundry/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -0,0 +1,2 @@ +org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive.ReactiveCloudFoundryActuatorAutoConfiguration +org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet.CloudFoundryActuatorAutoConfiguration diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/AccessLevelTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/AccessLevelTests.java similarity index 95% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/AccessLevelTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/AccessLevelTests.java index 3ea514eb271..e83c78ac302 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/AccessLevelTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/AccessLevelTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryAuthorizationExceptionTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryAuthorizationExceptionTests.java similarity index 93% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryAuthorizationExceptionTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryAuthorizationExceptionTests.java index a4da7b28c7c..f392b7aea1e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryAuthorizationExceptionTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryAuthorizationExceptionTests.java @@ -14,11 +14,11 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.http.HttpStatus; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryConditionalOnAvailableEndpointTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryConditionalOnAvailableEndpointTests.java new file mode 100644 index 00000000000..7ff1639fbcd --- /dev/null +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryConditionalOnAvailableEndpointTests.java @@ -0,0 +1,110 @@ +/* + * Copyright 2012-present 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. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; + +import org.junit.jupiter.api.Test; + +import org.springframework.boot.actuate.autoconfigure.endpoint.condition.ConditionalOnAvailableEndpoint; +import org.springframework.boot.actuate.endpoint.Access; +import org.springframework.boot.actuate.endpoint.annotation.Endpoint; +import org.springframework.boot.convert.ApplicationConversionService; +import org.springframework.boot.test.context.runner.ApplicationContextRunner; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import static org.assertj.core.api.Assertions.assertThat; + +/** + * Tests for {@link ConditionalOnAvailableEndpoint @ConditionalOnAvailableEndpoint} when + * running on Cloud Foundry. + * + * @author Brian Clozel + */ +class CloudFoundryConditionalOnAvailableEndpointTests { + + private final ApplicationContextRunner contextRunner = new ApplicationContextRunner() + .withUserConfiguration(AllEndpointsConfiguration.class) + .withInitializer( + (context) -> context.getEnvironment().setConversionService(new ApplicationConversionService())); + + @Test + void outcomeOnCloudFoundryShouldMatchAll() { + this.contextRunner.withPropertyValues("VCAP_APPLICATION:---") + .run((context) -> assertThat(context).hasBean("info").hasBean("health").hasBean("spring").hasBean("test")); + } + + @Endpoint(id = "health") + static class HealthEndpoint { + + } + + @Endpoint(id = "info") + static class InfoEndpoint { + + } + + @Endpoint(id = "spring") + static class SpringEndpoint { + + } + + @Endpoint(id = "test") + static class TestEndpoint { + + } + + @Endpoint(id = "shutdown", defaultAccess = Access.NONE) + static class ShutdownEndpoint { + + } + + @Configuration(proxyBeanMethods = false) + static class AllEndpointsConfiguration { + + @Bean + @ConditionalOnAvailableEndpoint + HealthEndpoint health() { + return new HealthEndpoint(); + } + + @Bean + @ConditionalOnAvailableEndpoint + InfoEndpoint info() { + return new InfoEndpoint(); + } + + @Bean + @ConditionalOnAvailableEndpoint + SpringEndpoint spring() { + return new SpringEndpoint(); + } + + @Bean + @ConditionalOnAvailableEndpoint + TestEndpoint test() { + return new TestEndpoint(); + } + + @Bean + @ConditionalOnAvailableEndpoint + ShutdownEndpoint shutdown() { + return new ShutdownEndpoint(); + } + + } + +} diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointFilterTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointFilterTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointFilterTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointFilterTests.java index e9c2121e398..c4518f9c3c9 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryEndpointFilterTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryEndpointFilterTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryWebEndpointDiscovererTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryWebEndpointDiscovererTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryWebEndpointDiscovererTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryWebEndpointDiscovererTests.java index dfdec4c3490..8744d9953a2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/CloudFoundryWebEndpointDiscovererTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/CloudFoundryWebEndpointDiscovererTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.util.Collection; import java.util.Collections; @@ -26,7 +26,6 @@ import org.junit.jupiter.api.Test; import org.springframework.aot.hint.MemberCategory; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.predicate.RuntimeHintsPredicates; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryWebEndpointDiscoverer.CloudFoundryWebEndpointDiscovererRuntimeHints; import org.springframework.boot.actuate.endpoint.EndpointId; import org.springframework.boot.actuate.endpoint.InvocationContext; import org.springframework.boot.actuate.endpoint.SecurityContext; @@ -42,6 +41,7 @@ import org.springframework.boot.actuate.endpoint.web.annotation.EndpointWebExten import org.springframework.boot.actuate.health.HealthContributorRegistry; import org.springframework.boot.actuate.health.HealthEndpoint; import org.springframework.boot.actuate.health.HealthEndpointGroups; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryWebEndpointDiscoverer.CloudFoundryWebEndpointDiscovererRuntimeHints; import org.springframework.context.annotation.AnnotationConfigApplicationContext; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/TokenTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/TokenTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/TokenTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/TokenTests.java index b68803a27c2..3ed2c6e38b4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/TokenTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/TokenTests.java @@ -14,14 +14,14 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure; import java.util.Base64; import java.util.function.Consumer; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java index c41110961c9..c7c64095d9d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryReactiveHealthEndpointWebExtensionTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.time.Duration; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java similarity index 82% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java index 87dab527167..f1fa9b6bfe4 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointHandlerMappingTests.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import org.junit.jupiter.api.Test; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.predicate.RuntimeHintsPredicates; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive.CloudFoundryWebFluxEndpointHandlerMapping.CloudFoundryLinksHandler; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive.CloudFoundryWebFluxEndpointHandlerMapping.CloudFoundryWebFluxEndpointHandlerMappingRuntimeHints; import org.springframework.boot.actuate.endpoint.web.Link; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive.CloudFoundryWebFluxEndpointHandlerMapping.CloudFoundryLinksHandler; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive.CloudFoundryWebFluxEndpointHandlerMapping.CloudFoundryWebFluxEndpointHandlerMappingRuntimeHints; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java index a6c1b9c1850..1de5555884a 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/CloudFoundryWebFluxEndpointIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.time.Duration; import java.util.ArrayList; @@ -29,9 +29,6 @@ import java.util.function.Consumer; import org.junit.jupiter.api.Test; import reactor.core.publisher.Mono; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.actuate.endpoint.ExposableEndpoint; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; @@ -44,6 +41,9 @@ import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes; import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.reactor.netty.autoconfigure.NettyReactiveWebServerAutoConfiguration; import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext; import org.springframework.boot.test.context.runner.ContextConsumer; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java index 29d7b4d329b..3d148308280 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundryActuatorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.io.IOException; import java.time.Duration; @@ -32,7 +32,6 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import reactor.netty.http.HttpResources; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryInfoEndpointWebExtension; import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.health.HealthContributorAutoConfiguration; @@ -50,6 +49,7 @@ import org.springframework.boot.actuate.endpoint.web.WebOperationRequestPredicat import org.springframework.boot.autoconfigure.AutoConfigurations; import org.springframework.boot.autoconfigure.context.PropertyPlaceholderAutoConfiguration; import org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet.CloudFoundryInfoEndpointWebExtension; import org.springframework.boot.http.converter.autoconfigure.HttpMessageConvertersAutoConfiguration; import org.springframework.boot.jackson.autoconfigure.JacksonAutoConfiguration; import org.springframework.boot.security.autoconfigure.reactive.ReactiveSecurityAutoConfiguration; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java index ce7e41d04a0..91638bb454a 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityInterceptorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.time.Duration; import java.util.Base64; @@ -27,9 +27,9 @@ import org.mockito.junit.jupiter.MockitoExtension; import reactor.core.publisher.Mono; import reactor.test.StepVerifier; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.mock.http.server.reactive.MockServerHttpRequest; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityServiceTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityServiceTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityServiceTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityServiceTests.java index d1c8dd1a33d..ae035d2b951 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveCloudFoundrySecurityServiceTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveCloudFoundrySecurityServiceTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.util.function.Consumer; @@ -26,9 +26,9 @@ import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import reactor.test.StepVerifier; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.http.HttpHeaders; import org.springframework.web.reactive.function.client.WebClient; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveTokenValidatorTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveTokenValidatorTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveTokenValidatorTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveTokenValidatorTests.java index d97ad702a46..69a46fd109b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/ReactiveTokenValidatorTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/ReactiveTokenValidatorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.reactive; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -40,9 +40,9 @@ import reactor.core.publisher.Mono; import reactor.test.StepVerifier; import reactor.test.publisher.PublisherProbe; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.Token; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.Token; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.util.StreamUtils; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryActuatorAutoConfigurationTests.java similarity index 99% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryActuatorAutoConfigurationTests.java index f2ac94bb19b..e2707011988 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryActuatorAutoConfigurationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Arrays; import java.util.Collection; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryHealthEndpointWebExtensionTests.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryHealthEndpointWebExtensionTests.java index 87377d90416..390e9eb3193 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryHealthEndpointWebExtensionTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryHealthEndpointWebExtensionTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import org.junit.jupiter.api.Test; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryInfoEndpointWebExtensionTests.java similarity index 98% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryInfoEndpointWebExtensionTests.java index 8667bf4eae6..622b1f323e3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryInfoEndpointWebExtensionTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryInfoEndpointWebExtensionTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Map; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java index 5b86867923d..77b96c801d8 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.time.Duration; import java.util.ArrayList; @@ -29,9 +29,6 @@ import java.util.function.Consumer; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.actuate.endpoint.ExposableEndpoint; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; @@ -43,6 +40,9 @@ import org.springframework.boot.actuate.endpoint.web.EndpointMapping; import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes; import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.test.context.runner.WebApplicationContextRunner; import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory; import org.springframework.boot.web.server.servlet.context.AnnotationConfigServletWebServerApplicationContext; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityInterceptorTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityInterceptorTests.java similarity index 94% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityInterceptorTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityInterceptorTests.java index 509cec2aada..4c13514c091 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityInterceptorTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityInterceptorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Base64; @@ -24,10 +24,10 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.SecurityResponse; import org.springframework.boot.actuate.endpoint.EndpointId; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.SecurityResponse; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; import org.springframework.mock.web.MockHttpServletRequest; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityServiceTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityServiceTests.java similarity index 96% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityServiceTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityServiceTests.java index 5f1c82f7ccf..1318c2b5575 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundrySecurityServiceTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundrySecurityServiceTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.util.Map; import java.util.function.Consumer; @@ -22,9 +22,9 @@ import java.util.function.Consumer; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.AccessLevel; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.AccessLevel; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; import org.springframework.boot.restclient.RestTemplateBuilder; import org.springframework.boot.restclient.test.MockServerRestTemplateCustomizer; import org.springframework.http.HttpStatus; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java similarity index 82% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java index 6326dd460e8..e03f64b607f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/CloudFoundryWebEndpointServletHandlerMappingTests.java @@ -14,15 +14,15 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import org.junit.jupiter.api.Test; import org.springframework.aot.hint.RuntimeHints; import org.springframework.aot.hint.predicate.RuntimeHintsPredicates; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryWebEndpointServletHandlerMapping.CloudFoundryLinksHandler; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryWebEndpointServletHandlerMapping.CloudFoundryWebEndpointServletHandlerMappingRuntimeHints; import org.springframework.boot.actuate.endpoint.web.Link; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet.CloudFoundryWebEndpointServletHandlerMapping.CloudFoundryLinksHandler; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet.CloudFoundryWebEndpointServletHandlerMapping.CloudFoundryWebEndpointServletHandlerMappingRuntimeHints; import static org.assertj.core.api.Assertions.assertThat; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/SkipSslVerificationHttpRequestFactoryTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/SkipSslVerificationHttpRequestFactoryTests.java index 95295e5b95b..f129b1f88be 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/SkipSslVerificationHttpRequestFactoryTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import javax.net.ssl.SSLHandshakeException; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/TokenValidatorTests.java b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/TokenValidatorTests.java similarity index 97% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/TokenValidatorTests.java rename to spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/TokenValidatorTests.java index ec6ef3b61a3..e049d7b66e3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/TokenValidatorTests.java +++ b/spring-boot-project/spring-boot-cloudfoundry/src/test/java/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/TokenValidatorTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet; +package org.springframework.boot.cloudfoundry.actuate.autoconfigure.servlet; import java.io.ByteArrayOutputStream; import java.io.IOException; @@ -36,9 +36,9 @@ import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.CloudFoundryAuthorizationException.Reason; -import org.springframework.boot.actuate.autoconfigure.cloudfoundry.Token; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.CloudFoundryAuthorizationException.Reason; +import org.springframework.boot.cloudfoundry.actuate.autoconfigure.Token; import org.springframework.test.util.ReflectionTestUtils; import org.springframework.util.StreamUtils; diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/resources/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/test.jks b/spring-boot-project/spring-boot-cloudfoundry/src/test/resources/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/test.jks similarity index 100% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/resources/org/springframework/boot/actuate/autoconfigure/cloudfoundry/reactive/test.jks rename to spring-boot-project/spring-boot-cloudfoundry/src/test/resources/org/springframework/boot/cloudfoundry/actuate/autoconfigure/reactive/test.jks diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/resources/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/test.jks b/spring-boot-project/spring-boot-cloudfoundry/src/test/resources/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/test.jks similarity index 100% rename from spring-boot-project/spring-boot-actuator-autoconfigure-all/src/test/resources/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/test.jks rename to spring-boot-project/spring-boot-cloudfoundry/src/test/resources/org/springframework/boot/cloudfoundry/actuate/autoconfigure/servlet/test.jks diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 2bd62fc6035..e11cdd4a2f4 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1995,6 +1995,7 @@ bom { "spring-boot-buildpack-platform", "spring-boot-cache", "spring-boot-cassandra", + "spring-boot-cloudfoundry", "spring-boot-configuration-metadata", "spring-boot-configuration-processor", "spring-boot-couchbase",