diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle
index d998c7306783..5e624a776058 100644
--- a/buildSrc/build.gradle
+++ b/buildSrc/build.gradle
@@ -42,7 +42,6 @@ dependencies {
implementation("org.apache.maven:maven-embedder:${mavenVersion}")
implementation("org.antora:gradle-antora-plugin:1.0.0")
implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlinVersion}")
- implementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:${kotlinVersion}")
implementation("org.springframework:spring-context")
implementation("org.springframework:spring-core")
implementation("org.springframework:spring-web")
diff --git a/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java
index 8bd7f2fb21d1..3a51b05f158e 100644
--- a/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java
+++ b/buildSrc/src/main/java/org/springframework/boot/build/ConventionsPlugin.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2024 the original author or authors.
+ * Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -35,6 +35,9 @@
* When the {@link AntoraPlugin} is applied, the conventions in {@link AntoraConventions}
* are applied.
*
+ * When the {@code org.jetbrains.kotlin.jvm} plugin is applied, the conventions in
+ * {@link KotlinConventions} are applied.
+ *
* @author Andy Wilkinson
* @author Christoph Dreis
* @author Mike Smithson
@@ -50,6 +53,7 @@ public void apply(Project project) {
new KotlinConventions().apply(project);
new WarConventions().apply(project);
new EclipseConventions().apply(project);
+ new TestFixturesConventions().apply(project);
RepositoryTransformersExtension.apply(project);
}
diff --git a/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java
index 32b38af396de..3f65957dec14 100644
--- a/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java
+++ b/buildSrc/src/main/java/org/springframework/boot/build/KotlinConventions.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2024 the original author or authors.
+ * Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -25,7 +25,9 @@
import org.gradle.api.Project;
import org.gradle.api.tasks.SourceSet;
import org.gradle.api.tasks.SourceSetContainer;
-import org.jetbrains.kotlin.gradle.dsl.KotlinJvmOptions;
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget;
+import org.jetbrains.kotlin.gradle.dsl.KotlinJvmCompilerOptions;
+import org.jetbrains.kotlin.gradle.dsl.KotlinVersion;
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile;
/**
@@ -35,7 +37,7 @@
*
* - {@link KotlinCompile} tasks are configured to:
*
- * - Use {@code apiVersion} and {@code languageVersion} 1.7.
+ *
- Use {@code apiVersion} and {@code languageVersion} 2.1.
*
- Use {@code jvmTarget} 17.
*
- Treat all warnings as errors
*
- Suppress version warnings
@@ -56,14 +58,14 @@ void apply(Project project) {
}
private void configure(KotlinCompile compile) {
- KotlinJvmOptions kotlinOptions = compile.getKotlinOptions();
- kotlinOptions.setApiVersion("1.7");
- kotlinOptions.setLanguageVersion("1.7");
- kotlinOptions.setJvmTarget("17");
- kotlinOptions.setAllWarningsAsErrors(true);
- List freeCompilerArgs = new ArrayList<>(kotlinOptions.getFreeCompilerArgs());
+ KotlinJvmCompilerOptions kotlinOptions = compile.getCompilerOptions();
+ kotlinOptions.getApiVersion().set(KotlinVersion.KOTLIN_2_1);
+ kotlinOptions.getLanguageVersion().set(KotlinVersion.KOTLIN_2_1);
+ kotlinOptions.getJvmTarget().set(JvmTarget.JVM_17);
+ kotlinOptions.getAllWarningsAsErrors().set(true);
+ List freeCompilerArgs = new ArrayList<>(kotlinOptions.getFreeCompilerArgs().get());
freeCompilerArgs.add("-Xsuppress-version-warnings");
- kotlinOptions.setFreeCompilerArgs(freeCompilerArgs);
+ kotlinOptions.getFreeCompilerArgs().set(freeCompilerArgs);
}
private void configureDokkatoo(Project project) {
diff --git a/buildSrc/src/main/java/org/springframework/boot/build/TestFixturesConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/TestFixturesConventions.java
new file mode 100644
index 000000000000..06316d71f9d0
--- /dev/null
+++ b/buildSrc/src/main/java/org/springframework/boot/build/TestFixturesConventions.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2012-2025 the original author or authors.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * 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.build;
+
+import org.gradle.api.Project;
+import org.gradle.api.artifacts.ConfigurationContainer;
+import org.gradle.api.component.AdhocComponentWithVariants;
+import org.gradle.api.plugins.JavaTestFixturesPlugin;
+
+/**
+ * Conventions that are applied in the presence of the {@link JavaTestFixturesPlugin}.
+ * When the plugin is applied:
+ *
+ *
+ * - Publishing of the test fixtures is disabled.
+ *
+ *
+ * @author Andy Wilkinson
+ */
+class TestFixturesConventions {
+
+ void apply(Project project) {
+ project.getPlugins().withType(JavaTestFixturesPlugin.class, (testFixtures) -> disablePublishing(project));
+ }
+
+ private void disablePublishing(Project project) {
+ ConfigurationContainer configurations = project.getConfigurations();
+ AdhocComponentWithVariants javaComponent = (AdhocComponentWithVariants) project.getComponents()
+ .getByName("java");
+ javaComponent.withVariantsFromConfiguration(configurations.getByName("testFixturesApiElements"),
+ (variant) -> variant.skip());
+ javaComponent.withVariantsFromConfiguration(configurations.getByName("testFixturesRuntimeElements"),
+ (variant) -> variant.skip());
+ }
+
+}
diff --git a/gradle.properties b/gradle.properties
index b6c6c18e84ed..196765b300ed 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -14,7 +14,7 @@ hamcrestVersion=3.0
jacksonVersion=2.18.2
javaFormatVersion=0.0.43
junitJupiterVersion=5.11.4
-kotlinVersion=1.9.25
+kotlinVersion=2.1.10
mavenVersion=3.9.4
mockitoVersion=5.15.2
nativeBuildToolsVersion=0.10.5
diff --git a/settings.gradle b/settings.gradle
index c56db1cf5d85..72e6e23ce1cb 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -60,12 +60,14 @@ include "spring-boot-project:spring-boot"
include "spring-boot-project:spring-boot-autoconfigure"
include "spring-boot-project:spring-boot-actuator"
include "spring-boot-project:spring-boot-actuator-autoconfigure"
+include "spring-boot-project:spring-boot-all"
include "spring-boot-project:spring-boot-docker-compose"
include "spring-boot-project:spring-boot-devtools"
include "spring-boot-project:spring-boot-docs"
include "spring-boot-project:spring-boot-test"
include "spring-boot-project:spring-boot-testcontainers"
include "spring-boot-project:spring-boot-test-autoconfigure"
+include "spring-boot-project:spring-boot-tomcat"
include "spring-boot-tests:spring-boot-integration-tests:spring-boot-configuration-processor-tests"
include "spring-boot-tests:spring-boot-integration-tests:spring-boot-launch-script-tests"
include "spring-boot-tests:spring-boot-integration-tests:spring-boot-loader-tests"
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
index 1db922d1a705..68e1a4eaee74 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle
@@ -11,12 +11,13 @@ description = "Spring Boot Actuator AutoConfigure"
dependencies {
api(project(":spring-boot-project:spring-boot-actuator"))
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
implementation("com.fasterxml.jackson.core:jackson-databind")
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
+ optional(project(":spring-boot-project:spring-boot-tomcat"))
optional("ch.qos.logback:logback-classic")
optional("org.apache.cassandra:java-driver-core") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.java
index b5818258b87d..f11c67e3f013 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2022 the original author or authors.
+ * Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -28,6 +28,7 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.context.annotation.Bean;
/**
@@ -38,7 +39,7 @@
*/
@AutoConfiguration(after = CompositeMeterRegistryAutoConfiguration.class)
@ConditionalOnWebApplication
-@ConditionalOnClass({ TomcatMetrics.class, Manager.class })
+@ConditionalOnClass({ TomcatMetrics.class, Manager.class, TomcatWebServer.class })
public class TomcatMetricsAutoConfiguration {
@Bean
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatAccessLogCustomizer.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatAccessLogCustomizer.java
index 53cbc37cc102..8ba1b1016634 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatAccessLogCustomizer.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatAccessLogCustomizer.java
@@ -23,7 +23,7 @@
import org.apache.catalina.valves.AccessLogValve;
import org.springframework.boot.actuate.autoconfigure.web.server.AccessLogCustomizer;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
/**
* {@link AccessLogCustomizer} for Tomcat.
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatReactiveManagementChildContextConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatReactiveManagementChildContextConfiguration.java
index d3cdf6a0084d..1714c60c5f79 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatReactiveManagementChildContextConfiguration.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatReactiveManagementChildContextConfiguration.java
@@ -24,7 +24,7 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
/**
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatServletManagementChildContextConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatServletManagementChildContextConfiguration.java
index 0ec64115d59a..6ca50b8e6e04 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatServletManagementChildContextConfiguration.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/server/tomcat/TomcatServletManagementChildContextConfiguration.java
@@ -24,7 +24,7 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
/**
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java
index 5e25ad9be1d2..eddc0f1c3e41 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryMvcWebEndpointIntegrationTests.java
@@ -44,7 +44,7 @@
import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint;
import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java
index 2a33e8d9580f..7155955cbf24 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/SkipSslVerificationHttpRequestFactoryTests.java
@@ -22,9 +22,9 @@
import org.junit.jupiter.api.Test;
import org.springframework.boot.testsupport.web.servlet.ExampleServlet;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/MappingsEndpointServletDocumentationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/MappingsEndpointServletDocumentationTests.java
index 4870b7d37c3c..2d44571391b5 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/MappingsEndpointServletDocumentationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/web/documentation/MappingsEndpointServletDocumentationTests.java
@@ -33,7 +33,7 @@
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.web.server.LocalServerPort;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.ConfigurableApplicationContext;
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/metrics/web/tomcat/TomcatMetricsAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfigurationTests.java
index b9b7e393331f..d22e080f56e8 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfigurationTests.java
@@ -33,10 +33,10 @@
import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequestIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequestIntegrationTests.java
index ad8db16605e9..f33c42fa5446 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequestIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/reactive/EndpointRequestIntegrationTests.java
@@ -38,8 +38,8 @@
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.HttpMethod;
diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/JerseyEndpointRequestIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/JerseyEndpointRequestIntegrationTests.java
index 03593945d429..347724fabdf7 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/JerseyEndpointRequestIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/JerseyEndpointRequestIntegrationTests.java
@@ -25,7 +25,7 @@
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.FilteredClassLoader;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
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/security/servlet/MvcEndpointRequestIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/MvcEndpointRequestIntegrationTests.java
index ac9d5658b56c..8d6fcff5adb1 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/MvcEndpointRequestIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/security/servlet/MvcEndpointRequestIntegrationTests.java
@@ -25,7 +25,7 @@
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
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/web/reactive/ReactiveManagementChildContextConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationIntegrationTests.java
index 110b637030b1..2dd4fd20506d 100644
--- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationIntegrationTests.java
@@ -44,11 +44,11 @@
import org.springframework.boot.test.context.assertj.AssertableReactiveWebApplicationContext;
import org.springframework.boot.test.context.runner.ContextConsumer;
import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.boot.web.context.ServerPortInfoApplicationContextInitializer;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.context.ApplicationListener;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.core.convert.support.ConfigurableConversionService;
diff --git a/spring-boot-project/spring-boot-actuator/build.gradle b/spring-boot-project/spring-boot-actuator/build.gradle
index 90a7233376dd..e95b32d06461 100644
--- a/spring-boot-project/spring-boot-actuator/build.gradle
+++ b/spring-boot-project/spring-boot-actuator/build.gradle
@@ -9,7 +9,7 @@ plugins {
description = "Spring Boot Actuator"
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-autoconfigure"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
@@ -23,6 +23,7 @@ dependencies {
dockerTestImplementation("org.testcontainers:neo4j")
dockerTestImplementation("org.testcontainers:testcontainers")
+ optional(project(":spring-boot-project:spring-boot-tomcat"))
optional("org.apache.cassandra:java-driver-core") {
exclude group: "org.slf4j", module: "jcl-over-slf4j"
}
diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java
index fd9a313db3ea..a09c21ff4e33 100644
--- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java
+++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/metrics/web/tomcat/TomcatMetricsBinder.java
@@ -27,9 +27,9 @@
import org.springframework.beans.factory.DisposableBean;
import org.springframework.boot.context.event.ApplicationStartedEvent;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.boot.web.context.WebServerApplicationContext;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletHandlerMappings.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletHandlerMappings.java
index aa0389dfd431..c8b5affc58d9 100644
--- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletHandlerMappings.java
+++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/mappings/servlet/DispatcherServletHandlerMappings.java
@@ -26,10 +26,11 @@
import org.apache.catalina.Context;
import org.apache.catalina.core.StandardWrapper;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.servlet.undertow.UndertowServletWebServer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext;
+import org.springframework.util.ClassUtils;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.HandlerMapping;
@@ -43,6 +44,10 @@
*/
final class DispatcherServletHandlerMappings {
+ private static final boolean TOMCAT_WEB_SERVER_PRESENT = ClassUtils.isPresent(
+ "org.springframework.boot.web.server.tomcat.TomcatWebServer",
+ DispatcherServletHandlerMappings.class.getClassLoader());
+
private final String name;
private final DispatcherServlet dispatcherServlet;
@@ -73,7 +78,7 @@ private void initializeDispatcherServletIfPossible() {
if (webServer instanceof UndertowServletWebServer undertowServletWebServer) {
new UndertowServletInitializer(undertowServletWebServer).initializeServlet(this.name);
}
- else if (webServer instanceof TomcatWebServer tomcatWebServer) {
+ else if (TOMCAT_WEB_SERVER_PRESENT && webServer instanceof TomcatWebServer tomcatWebServer) {
new TomcatServletInitializer(tomcatWebServer).initializeServlet(this.name);
}
}
diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/annotation/BaseConfiguration.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/annotation/BaseConfiguration.java
index 27a7e947cae8..027771b53fd0 100644
--- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/annotation/BaseConfiguration.java
+++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/annotation/BaseConfiguration.java
@@ -25,7 +25,7 @@
import org.springframework.boot.actuate.endpoint.invoke.convert.ConversionServiceParameterValueMapper;
import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes;
import org.springframework.boot.actuate.endpoint.web.PathMapper;
-import org.springframework.boot.web.server.tomcat.TomcatEmbeddedWebappClassLoader;
+import org.springframework.boot.tomcat.TomcatEmbeddedWebappClassLoader;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/jersey/JerseyWebEndpointIntegrationTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/jersey/JerseyWebEndpointIntegrationTests.java
index 7a3fe003ffe5..23e6b807b9db 100644
--- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/jersey/JerseyWebEndpointIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/jersey/JerseyWebEndpointIntegrationTests.java
@@ -40,7 +40,7 @@
import org.springframework.boot.actuate.endpoint.web.EndpointMediaTypes;
import org.springframework.boot.actuate.endpoint.web.annotation.AbstractWebEndpointIntegrationTests;
import org.springframework.boot.actuate.endpoint.web.annotation.WebEndpointDiscoverer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/ControllerEndpointHandlerMappingIntegrationTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/ControllerEndpointHandlerMappingIntegrationTests.java
index 840f7a9096c7..262022f4baf8 100644
--- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/ControllerEndpointHandlerMappingIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/ControllerEndpointHandlerMappingIntegrationTests.java
@@ -38,7 +38,7 @@
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
import org.springframework.boot.test.context.runner.ContextConsumer;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/MvcWebEndpointIntegrationTests.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/MvcWebEndpointIntegrationTests.java
index ea8dc2d7aee7..705922887dce 100644
--- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/MvcWebEndpointIntegrationTests.java
+++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/servlet/MvcWebEndpointIntegrationTests.java
@@ -38,7 +38,7 @@
import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/test/WebEndpointTestInvocationContextProvider.java b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/test/WebEndpointTestInvocationContextProvider.java
index 829a2cd3b362..331adaecd30d 100644
--- a/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/test/WebEndpointTestInvocationContextProvider.java
+++ b/spring-boot-project/spring-boot-actuator/src/test/java/org/springframework/boot/actuate/endpoint/web/test/WebEndpointTestInvocationContextProvider.java
@@ -55,10 +55,10 @@
import org.springframework.boot.autoconfigure.web.reactive.WebFluxAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration;
import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.context.WebServerInitializedEvent;
import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext;
import org.springframework.boot.web.server.reactive.netty.NettyReactiveWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationListener;
diff --git a/spring-boot-project/spring-boot-all/build.gradle b/spring-boot-project/spring-boot-all/build.gradle
new file mode 100644
index 000000000000..9f29cd67c15c
--- /dev/null
+++ b/spring-boot-project/spring-boot-all/build.gradle
@@ -0,0 +1,172 @@
+plugins {
+ id "dev.adamko.dokkatoo-html"
+ id "java-library"
+ id "org.jetbrains.kotlin.jvm"
+ id "org.springframework.boot.deployed"
+ id "org.springframework.boot.optional-dependencies"
+}
+
+description = "Spring Boot All"
+
+dependencies {
+ api(project(":spring-boot-project:spring-boot"))
+ api("org.springframework:spring-core")
+ api("org.springframework:spring-context")
+ optional("ch.qos.logback:logback-classic")
+ optional("com.clickhouse:clickhouse-jdbc")
+ optional("com.fasterxml.jackson.core:jackson-databind")
+ optional("com.h2database:h2")
+ optional("com.google.code.gson:gson")
+ optional("com.mchange:c3p0")
+ optional("com.oracle.database.jdbc:ucp11")
+ optional("com.oracle.database.jdbc:ojdbc11")
+ optional("com.samskivert:jmustache")
+ optional("com.zaxxer:HikariCP")
+ optional("io.netty:netty-tcnative-boringssl-static")
+ optional("io.projectreactor:reactor-tools")
+ optional("io.projectreactor.netty:reactor-netty-http")
+ optional("io.r2dbc:r2dbc-pool")
+ optional("io.rsocket:rsocket-core")
+ optional("io.rsocket:rsocket-transport-netty")
+ optional("io.undertow:undertow-servlet")
+ optional("jakarta.jms:jakarta.jms-api")
+ optional("jakarta.persistence:jakarta.persistence-api")
+ optional("jakarta.servlet:jakarta.servlet-api")
+ optional("jakarta.transaction:jakarta.transaction-api")
+ optional("junit:junit")
+ optional("org.apache.commons:commons-dbcp2") {
+ exclude(group: "commons-logging", module: "commons-logging")
+ }
+ optional("org.apache.httpcomponents.client5:httpclient5")
+ optional("org.apache.logging.log4j:log4j-api")
+ optional("org.apache.logging.log4j:log4j-core")
+ optional("org.apache.logging.log4j:log4j-jul")
+ optional("org.apache.tomcat.embed:tomcat-embed-jasper")
+ optional("org.apache.tomcat:tomcat-jdbc")
+ optional("org.assertj:assertj-core")
+ optional("org.apache.groovy:groovy")
+ optional("org.apache.groovy:groovy-xml")
+ optional("org.crac:crac")
+ optional("org.eclipse.jetty:jetty-alpn-conscrypt-server")
+ optional("org.eclipse.jetty:jetty-client")
+ optional("org.eclipse.jetty:jetty-util")
+ optional("org.eclipse.jetty.ee10:jetty-ee10-servlets")
+ optional("org.eclipse.jetty.ee10:jetty-ee10-webapp")
+ optional("org.eclipse.jetty.http2:jetty-http2-server")
+ optional("org.flywaydb:flyway-core")
+ optional("org.hamcrest:hamcrest-library")
+ optional("org.hibernate.orm:hibernate-core")
+ optional("org.hibernate.validator:hibernate-validator")
+ optional("org.jooq:jooq") {
+ exclude(group: "javax.xml.bind", module: "jaxb-api")
+ }
+ optional("org.liquibase:liquibase-core") {
+ exclude(group: "javax.xml.bind", module: "jaxb-api")
+ }
+ optional("org.messaginghub:pooled-jms") {
+ exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec"
+ }
+ optional("org.postgresql:postgresql")
+ optional("org.slf4j:jul-to-slf4j")
+ optional("org.slf4j:slf4j-api")
+ optional("org.springframework:spring-messaging")
+ optional("org.springframework:spring-orm")
+ optional("org.springframework:spring-jms")
+ optional("org.springframework:spring-oxm")
+ optional("org.springframework:spring-r2dbc")
+ optional("org.springframework:spring-test")
+ optional("org.springframework:spring-web")
+ optional("org.springframework:spring-webflux")
+ optional("org.springframework:spring-webmvc")
+ optional("org.springframework.security:spring-security-web")
+ optional("org.springframework.ws:spring-ws-core") {
+ exclude group: "com.sun.mail", module: "jakarta.mail"
+ exclude group: "jakarta.platform", module: "jakarta.jakartaee-api"
+ exclude group: "org.eclipse.jetty", module: "jetty-server"
+ exclude group: "org.eclipse.jetty", module: "jetty-servlet"
+ exclude group: "jakarta.mail", module: "jakarta.mail-api"
+ }
+ optional("org.vibur:vibur-dbcp")
+ optional("org.yaml:snakeyaml")
+ optional("org.jetbrains.kotlin:kotlin-reflect")
+ optional("org.jetbrains.kotlin:kotlin-stdlib")
+ optional("software.amazon.jdbc:aws-advanced-jdbc-wrapper") {
+ exclude(group: "commons-logging", module: "commons-logging")
+ }
+
+ testImplementation(project(":spring-boot-project:spring-boot-tomcat"))
+ testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
+ testImplementation(testFixtures(project(":spring-boot-project:spring-boot")))
+ testImplementation("org.springframework:spring-core-test")
+ testImplementation("com.ibm.db2:jcc")
+ testImplementation("com.jayway.jsonpath:json-path")
+ testImplementation("com.microsoft.sqlserver:mssql-jdbc")
+ testImplementation("com.mysql:mysql-connector-j")
+ testImplementation("com.sun.xml.messaging.saaj:saaj-impl")
+ testImplementation("io.projectreactor:reactor-test")
+ testImplementation("io.r2dbc:r2dbc-h2")
+ testImplementation("jakarta.inject:jakarta.inject-api")
+ testImplementation("jakarta.xml.ws:jakarta.xml.ws-api")
+ testImplementation("net.sourceforge.jtds:jtds")
+ testImplementation("org.apache.derby:derby")
+ testImplementation("org.apache.derby:derbytools")
+ testImplementation("org.awaitility:awaitility")
+ testImplementation("org.codehaus.janino:janino")
+ testImplementation("org.eclipse.jetty:jetty-client")
+ testImplementation("org.eclipse.jetty.http2:jetty-http2-client")
+ testImplementation("org.eclipse.jetty.http2:jetty-http2-client-transport")
+ testImplementation("org.firebirdsql.jdbc:jaybird") {
+ exclude group: "javax.resource", module: "connector-api"
+ }
+ testImplementation("org.hsqldb:hsqldb")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.mariadb.jdbc:mariadb-java-client") {
+ exclude group: "org.slf4j", module: "jcl-over-slf4j"
+ }
+ testImplementation("org.mockito:mockito-core")
+ testImplementation("org.mockito:mockito-junit-jupiter")
+ testImplementation("org.springframework:spring-context-support")
+ testImplementation("org.springframework:spring-core-test")
+ testImplementation("org.springframework.data:spring-data-redis")
+ testImplementation("org.springframework.data:spring-data-r2dbc")
+ testImplementation("org.xerial:sqlite-jdbc")
+
+ testRuntimeOnly("org.testcontainers:jdbc") {
+ exclude group: "javax.annotation", module: "javax.annotation-api"
+ exclude group: "javax.xml.bind", module: "jaxb-api"
+ }
+}
+
+def syncJavaTemplates = tasks.register("syncJavaTemplates", Sync) {
+ from("src/main/javaTemplates")
+ into("build/generated-sources/main")
+ def properties = ["springBootVersion": project.version]
+ expand(properties)
+ inputs.properties(properties)
+}
+
+tasks.named("checkFormatMain") {
+ def generatedSources = fileTree("build/generated-sources/main")
+ // Exclude source generated from the templates as expand(properties) changes line endings on Windows
+ exclude { candidate -> generatedSources.contains(candidate.file) }
+ // Add the templates to check that the input is correctly formatted
+ source(fileTree("src/main/javaTemplates"))
+}
+
+plugins.withType(EclipsePlugin) {
+ eclipse {
+ synchronizationTasks syncJavaTemplates
+ }
+}
+
+sourceSets {
+ main {
+ java {
+ srcDirs syncJavaTemplates
+ }
+ }
+}
+
+test {
+ jvmArgs += "--add-opens=java.base/java.net=ALL-UNNAMED"
+}
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/flyway/FlywayDatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/flyway/FlywayDatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/flyway/FlywayDatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/flyway/FlywayDatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/flyway/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/flyway/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/flyway/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/flyway/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHints.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHints.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHints.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHints.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettings.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettings.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettings.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettings.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/http/client/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/http/client/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/BuildProperties.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/BuildProperties.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/BuildProperties.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/BuildProperties.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/GitProperties.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/GitProperties.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/GitProperties.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/InfoProperties.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/InfoProperties.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/InfoProperties.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/InfoProperties.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/JavaInfo.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/JavaInfo.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/JavaInfo.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/JavaInfo.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/OsInfo.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/OsInfo.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/OsInfo.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/OsInfo.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/ProcessInfo.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/ProcessInfo.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/ProcessInfo.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/ProcessInfo.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/SslInfo.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/SslInfo.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/SslInfo.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/SslInfo.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/info/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/info/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonComponent.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonComponent.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonComponent.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonComponent.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonComponentModule.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonComponentModule.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonComponentModule.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonComponentModule.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixin.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixin.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixin.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixin.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModule.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixinModule.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModule.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixinModule.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntries.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntries.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntries.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntries.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessor.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonObjectDeserializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonObjectDeserializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonObjectDeserializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonObjectDeserializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonObjectSerializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonObjectSerializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/JsonObjectSerializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/JsonObjectSerializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jackson/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jackson/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DataSourceBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHints.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHints.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHints.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHints.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceUnwrapper.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DataSourceUnwrapper.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DataSourceUnwrapper.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DataSourceUnwrapper.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/DatabaseDriver.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnection.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycle.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/SchemaManagement.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/SchemaManagement.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/SchemaManagement.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/SchemaManagement.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/SchemaManagementProvider.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/SchemaManagementProvider.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/SchemaManagementProvider.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/SchemaManagementProvider.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/SpringJdbcDependsOnDatabaseInitializationDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/SpringJdbcDependsOnDatabaseInitializationDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/SpringJdbcDependsOnDatabaseInitializationDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/SpringJdbcDependsOnDatabaseInitializationDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/UnsupportedDataSourcePropertyException.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/UnsupportedDataSourcePropertyException.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/UnsupportedDataSourcePropertyException.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/UnsupportedDataSourcePropertyException.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/XADataSourceWrapper.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/XADataSourceWrapper.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/XADataSourceWrapper.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/XADataSourceWrapper.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolver.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolver.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolver.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolver.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/init/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/init/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadata.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadata.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadata.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadata.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadata.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadata.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadata.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadata.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProvider.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadata.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadata.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadata.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadata.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/DataSourcePoolMetadataProvider.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadata.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadata.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadata.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadata.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadata.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadata.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadata.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadata.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadata.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadata.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadata.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadata.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/metadata/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/metadata/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jdbc/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jdbc/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jms/ConnectionFactoryUnwrapper.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jms/ConnectionFactoryUnwrapper.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jms/ConnectionFactoryUnwrapper.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jms/ConnectionFactoryUnwrapper.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jms/XAConnectionFactoryWrapper.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jms/XAConnectionFactoryWrapper.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jms/XAConnectionFactoryWrapper.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jms/XAConnectionFactoryWrapper.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jms/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jms/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jms/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jms/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jooq/JooqDependsOnDatabaseInitializationDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jooq/JooqDependsOnDatabaseInitializationDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jooq/JooqDependsOnDatabaseInitializationDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jooq/JooqDependsOnDatabaseInitializationDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jooq/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jooq/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/jooq/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/jooq/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/liquibase/LiquibaseDatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/liquibase/LiquibaseDatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/liquibase/LiquibaseDatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/liquibase/LiquibaseDatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/liquibase/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/liquibase/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/liquibase/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/liquibase/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/EntityManagerFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/EntityManagerFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/EntityManagerFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/EntityManagerFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/JpaDatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/JpaDatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/JpaDatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/JpaDatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/JpaDependsOnDatabaseInitializationDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/JpaDependsOnDatabaseInitializationDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/JpaDependsOnDatabaseInitializationDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/JpaDependsOnDatabaseInitializationDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringImplicitNamingStrategy.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringImplicitNamingStrategy.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringImplicitNamingStrategy.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringImplicitNamingStrategy.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringJtaPlatform.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringJtaPlatform.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringJtaPlatform.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/hibernate/SpringJtaPlatform.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/hibernate/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/hibernate/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/hibernate/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/hibernate/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/orm/jpa/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/orm/jpa/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryDecorator.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryDecorator.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryDecorator.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/ConnectionFactoryDecorator.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnection.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnection.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnection.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnection.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/OptionsCapableConnectionFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/OptionsCapableConnectionFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/OptionsCapableConnectionFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/OptionsCapableConnectionFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/init/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/init/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/init/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/init/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/r2dbc/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/r2dbc/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessor.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessor.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessor.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessor.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/reactor/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/reactor/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/reactor/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/reactor/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/RSocketServerBootstrap.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/RSocketServerBootstrap.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/RSocketServerBootstrap.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/RSocketServerBootstrap.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/RSocketServerInitializedEvent.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/RSocketServerInitializedEvent.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/RSocketServerInitializedEvent.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/RSocketServerInitializedEvent.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/context/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/context/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/messaging/RSocketStrategiesCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/messaging/RSocketStrategiesCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/messaging/RSocketStrategiesCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/messaging/RSocketStrategiesCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/messaging/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/messaging/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/messaging/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/messaging/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/netty/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/netty/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/netty/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/netty/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/ConfigurableRSocketServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/ConfigurableRSocketServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/ConfigurableRSocketServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/ConfigurableRSocketServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServerException.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServerException.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServerException.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServerException.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/RSocketServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/RSocketServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/rsocket/server/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/rsocket/server/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcher.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcher.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcher.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcher.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/reactive/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/reactive/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/reactive/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/reactive/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcher.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcher.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcher.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcher.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/servlet/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/servlet/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/security/servlet/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/security/servlet/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationMode.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationMode.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationMode.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationMode.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationSettings.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationSettings.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationSettings.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/DatabaseInitializationSettings.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDependsOnDatabaseInitializationDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDependsOnDatabaseInitializationDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDependsOnDatabaseInitializationDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/AbstractBeansOfTypeDependsOnDatabaseInitializationDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AnnotationDependsOnDatabaseInitializationDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/AnnotationDependsOnDatabaseInitializationDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/AnnotationDependsOnDatabaseInitializationDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/AnnotationDependsOnDatabaseInitializationDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/BeansOfTypeDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/BeansOfTypeDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/BeansOfTypeDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/BeansOfTypeDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializerDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializerDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializerDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DatabaseInitializerDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitialization.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitialization.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitialization.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitialization.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitializationDetector.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitializationDetector.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitializationDetector.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/DependsOnDatabaseInitializationDetector.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/dependency/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/dependency/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/sql/init/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/sql/init/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskExecutorCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskExecutorCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/ThreadPoolTaskSchedulerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/task/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/task/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/type/classreading/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/type/classreading/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/type/classreading/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/type/classreading/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/BasicAuthentication.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/BasicAuthentication.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/BasicAuthentication.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/BasicAuthentication.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactories.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactories.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactories.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactories.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettings.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettings.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettings.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettings.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestClientCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestClientCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestClientCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestClientCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateRequestCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateRequestCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RestTemplateRequestCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RestTemplateRequestCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RootUriBuilderFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RootUriBuilderFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RootUriBuilderFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RootUriBuilderFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RootUriTemplateHandler.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RootUriTemplateHandler.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/RootUriTemplateHandler.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/RootUriTemplateHandler.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/client/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/client/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/codec/CodecCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/codec/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/codec/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/codec/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributes.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributes.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributes.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributes.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/ErrorAttributes.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/ErrorAttributes.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/ErrorAttributes.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/ErrorAttributes.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/ErrorWebExceptionHandler.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/ErrorWebExceptionHandler.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/ErrorWebExceptionHandler.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/ErrorWebExceptionHandler.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/error/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/error/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/filter/OrderedHiddenHttpMethodFilter.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/filter/OrderedHiddenHttpMethodFilter.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/filter/OrderedHiddenHttpMethodFilter.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/filter/OrderedHiddenHttpMethodFilter.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/filter/OrderedWebFilter.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/filter/OrderedWebFilter.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/filter/OrderedWebFilter.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/filter/OrderedWebFilter.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/filter/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/filter/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/filter/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/filter/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/function/client/WebClientCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/function/client/WebClientCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/function/client/WebClientCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/function/client/WebClientCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/function/client/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/function/client/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/function/client/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/function/client/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheView.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheView.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheView.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheView.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolver.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolver.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolver.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolver.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/result/view/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/result/view/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/reactive/result/view/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/reactive/result/view/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/ConfigurableJettyWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/ConfigurableJettyWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/ConfigurableJettyWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/ConfigurableJettyWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/ForwardHeadersCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/ForwardHeadersCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/ForwardHeadersCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/ForwardHeadersCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/GracefulShutdown.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/GracefulShutdown.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/GracefulShutdown.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/GracefulShutdown.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyHandlerWrappers.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyHandlerWrappers.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyHandlerWrappers.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyHandlerWrappers.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyServerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyServerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyServerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyServerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/JettyWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/SslServerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/SslServerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/SslServerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/SslServerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/jetty/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/jetty/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/jetty/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/jetty/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/jetty/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/jetty/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/CompressionCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/CompressionCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/CompressionCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/CompressionCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/GracefulShutdown.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/GracefulShutdown.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/GracefulShutdown.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/GracefulShutdown.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyRouteProvider.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyRouteProvider.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyRouteProvider.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyRouteProvider.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyServerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyServerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyServerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyServerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyWebServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyWebServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyWebServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/NettyWebServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/SslServerCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/SslServerCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/SslServerCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/SslServerCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/netty/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/netty/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/undertow/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/undertow/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/undertow/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/reactive/undertow/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JasperInitializer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JasperInitializer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JasperInitializer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JasperInitializer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedErrorHandler.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedErrorHandler.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedErrorHandler.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedErrorHandler.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedWebAppContext.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedWebAppContext.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedWebAppContext.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyEmbeddedWebAppContext.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResource.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResource.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResource.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResource.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/ServletContextInitializerConfiguration.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/ServletContextInitializerConfiguration.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/ServletContextInitializerConfiguration.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/ServletContextInitializerConfiguration.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/jetty/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/jetty/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/CompositeResourceManager.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/CompositeResourceManager.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/CompositeResourceManager.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/CompositeResourceManager.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/DeploymentManagerHttpHandlerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/DeploymentManagerHttpHandlerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/DeploymentManagerHttpHandlerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/DeploymentManagerHttpHandlerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistence.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistence.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistence.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistence.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManager.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManager.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManager.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManager.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowDeploymentInfoCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowDeploymentInfoCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowDeploymentInfoCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowDeploymentInfoCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactory.java
similarity index 99%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactory.java
index fe1e60c98777..3aec0e4afffc 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactory.java
+++ b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactory.java
@@ -75,7 +75,6 @@
import org.springframework.boot.web.server.servlet.ServletContextInitializers;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerSettings;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.undertow.HttpHandlerFactory;
import org.springframework.boot.web.server.undertow.UndertowWebServerFactory;
import org.springframework.context.ResourceLoaderAware;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/undertow/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/servlet/undertow/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/AccessLogHttpHandlerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/AccessLogHttpHandlerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/AccessLogHttpHandlerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/AccessLogHttpHandlerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/CompressionHttpHandlerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/CompressionHttpHandlerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/CompressionHttpHandlerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/CompressionHttpHandlerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/ConfigurableUndertowWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/ConfigurableUndertowWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/ConfigurableUndertowWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/ConfigurableUndertowWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/HttpHandlerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/HttpHandlerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/HttpHandlerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/HttpHandlerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/SslBuilderCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/SslBuilderCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/SslBuilderCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/SslBuilderCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/UndertowBuilderCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/UndertowBuilderCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/UndertowBuilderCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/UndertowBuilderCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServerFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServerFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServerFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/UndertowWebServerFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/undertow/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/server/undertow/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/MustacheView.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/servlet/view/MustacheView.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/MustacheView.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/servlet/view/MustacheView.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/MustacheViewResolver.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/servlet/view/MustacheViewResolver.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/MustacheViewResolver.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/servlet/view/MustacheViewResolver.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/servlet/view/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/servlet/view/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/web/servlet/view/package-info.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactory.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilder.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateCustomizer.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateCustomizer.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/WebServiceTemplateCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/package-info.java b/spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/package-info.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/webservices/client/package-info.java
rename to spring-boot-project/spring-boot-all/src/main/java/org/springframework/boot/webservices/client/package-info.java
diff --git a/spring-boot-project/spring-boot-all/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-all/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000000..063f1993a892
--- /dev/null
+++ b/spring-boot-project/spring-boot-all/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,26 @@
+# Application Context Initializers
+org.springframework.context.ApplicationContextInitializer=\
+org.springframework.boot.rsocket.context.RSocketPortInfoApplicationContextInitializer
+
+# Environment Post Processors
+org.springframework.boot.env.EnvironmentPostProcessor=\
+org.springframework.boot.reactor.ReactorEnvironmentPostProcessor
+
+# Failure Analyzers
+org.springframework.boot.diagnostics.FailureAnalyzer=\
+org.springframework.boot.liquibase.LiquibaseChangelogMissingFailureAnalyzer
+
+# Database Initializer Detectors
+org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\
+org.springframework.boot.flyway.FlywayDatabaseInitializerDetector,\
+org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializerDetector,\
+org.springframework.boot.liquibase.LiquibaseDatabaseInitializerDetector,\
+org.springframework.boot.orm.jpa.JpaDatabaseInitializerDetector,\
+org.springframework.boot.r2dbc.init.R2dbcScriptDatabaseInitializerDetector
+
+# Depends On Database Initialization Detectors
+org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector=\
+org.springframework.boot.sql.init.dependency.AnnotationDependsOnDatabaseInitializationDetector,\
+org.springframework.boot.jdbc.SpringJdbcDependsOnDatabaseInitializationDetector,\
+org.springframework.boot.jooq.JooqDependsOnDatabaseInitializationDetector,\
+org.springframework.boot.orm.jpa.JpaDependsOnDatabaseInitializationDetector
diff --git a/spring-boot-project/spring-boot-all/src/main/resources/META-INF/spring/aot.factories b/spring-boot-project/spring-boot-all/src/main/resources/META-INF/spring/aot.factories
new file mode 100644
index 000000000000..1a1648cf8aa2
--- /dev/null
+++ b/spring-boot-project/spring-boot-all/src/main/resources/META-INF/spring/aot.factories
@@ -0,0 +1,13 @@
+org.springframework.aot.hint.RuntimeHintsRegistrar=\
+org.springframework.boot.http.client.ClientHttpRequestFactoryRuntimeHints,\
+org.springframework.boot.jdbc.DataSourceBuilderRuntimeHints,\
+org.springframework.boot.json.JacksonRuntimeHints,\
+org.springframework.boot.logging.java.JavaLoggingSystemRuntimeHints,\
+org.springframework.boot.logging.logback.LogbackRuntimeHints,\
+org.springframework.boot.web.server.undertow.UndertowWebServer.UndertowWebServerRuntimeHints
+
+org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor=\
+org.springframework.boot.jackson.JsonComponentModule.JsonComponentBeanFactoryInitializationAotProcessor
+
+org.springframework.beans.factory.aot.BeanRegistrationAotProcessor=\
+org.springframework.boot.jackson.JsonMixinModuleEntriesBeanRegistrationAotProcessor
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java
similarity index 99%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java
index 34f788efe271..186e799d4461 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java
+++ b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/AbstractClientHttpRequestFactoryBuilderTests.java
@@ -42,10 +42,10 @@
import org.springframework.boot.ssl.jks.JksSslStoreDetails;
import org.springframework.boot.testsupport.classpath.resources.WithPackageResources;
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.Ssl.ClientAuth;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.http.HttpMethod;
import org.springframework.http.HttpStatus;
import org.springframework.http.client.ClientHttpRequest;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHintsTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHintsTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHintsTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactoryRuntimeHintsTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettingsTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettingsTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettingsTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ClientHttpRequestFactorySettingsTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/HttpComponentsClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/JdkClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/JettyClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ReactorClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/ReflectiveComponentsClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/SimpleClientHttpRequestFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/TestCustomizer.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/TestCustomizer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/http/client/TestCustomizer.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/http/client/TestCustomizer.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/BuildPropertiesTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/GitPropertiesTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/GitPropertiesTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/GitPropertiesTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/InfoPropertiesTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/JavaInfoTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/JavaInfoTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/JavaInfoTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/JavaInfoTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/OsInfoTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/OsInfoTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/OsInfoTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/OsInfoTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/ProcessInfoTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/ProcessInfoTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/ProcessInfoTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/ProcessInfoTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/SslInfoTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/SslInfoTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/info/SslInfoTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/info/SslInfoTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonComponentModuleTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonComponentModuleTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonComponentModuleTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonComponentModuleTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonMixinModuleEntriesBeanRegistrationAotProcessorTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonMixinModuleTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonMixinModuleTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonMixinModuleTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonObjectDeserializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonObjectDeserializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonObjectDeserializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonObjectDeserializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonObjectSerializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonObjectSerializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/JsonObjectSerializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/JsonObjectSerializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonComponent.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonComponent.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonComponent.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonComponent.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonKeyComponent.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonKeyComponent.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonKeyComponent.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/NameAndAgeJsonKeyComponent.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/NameAndCareerJsonComponent.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/NameAndCareerJsonComponent.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/NameAndCareerJsonComponent.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/NameAndCareerJsonComponent.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/a/RenameMixInClass.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/b/RenameMixInAbstractClass.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/b/RenameMixInAbstractClass.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/b/RenameMixInAbstractClass.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/b/RenameMixInAbstractClass.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/c/RenameMixInInterface.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/c/RenameMixInInterface.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/c/RenameMixInInterface.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/c/RenameMixInInterface.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/d/EmptyMixInClass.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/d/EmptyMixInClass.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/d/EmptyMixInClass.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/d/EmptyMixInClass.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/e/PrivateMixInClass.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/e/PrivateMixInClass.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/e/PrivateMixInClass.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/e/PrivateMixInClass.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/f/EmptyMixIn.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/f/EmptyMixIn.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/scan/f/EmptyMixIn.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/scan/f/EmptyMixIn.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/types/Name.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/types/Name.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/types/Name.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/types/Name.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/types/NameAndAge.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/types/NameAndAge.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/types/NameAndAge.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/types/NameAndAge.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/types/NameAndCareer.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/types/NameAndCareer.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jackson/types/NameAndCareer.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jackson/types/NameAndCareer.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderNoHikariTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderNoHikariTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderNoHikariTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderNoHikariTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHintsTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHintsTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHintsTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderRuntimeHintsTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperNoSpringJdbcTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperNoSpringJdbcTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperNoSpringJdbcTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperNoSpringJdbcTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DataSourceUnwrapperTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverClassNameTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DatabaseDriverClassNameTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverClassNameTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DatabaseDriverClassNameTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/DatabaseDriverTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/EmbeddedDatabaseConnectionTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycleTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycleTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycleTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/HikariCheckpointRestoreLifecycleTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/init/DataSourceScriptDatabaseInitializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolverTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolverTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolverTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/init/PlatformPlaceholderDatabaseDriverResolverTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadataTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadataTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadataTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/AbstractDataSourcePoolMetadataTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadataTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadataTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadataTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/CommonsDbcp2DataSourcePoolMetadataTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProviderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProviderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProviderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/CompositeDataSourcePoolMetadataProviderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadataTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadataTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadataTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/HikariDataSourcePoolMetadataTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadataTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadataTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadataTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/OracleUcpDataSourcePoolMetadataTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadataTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadataTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadataTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jdbc/metadata/TomcatDataSourcePoolMetadataTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jms/ConnectionFactoryUnwrapperTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jms/ConnectionFactoryUnwrapperTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/jms/ConnectionFactoryUnwrapperTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/jms/ConnectionFactoryUnwrapperTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/liquibase/LiquibaseChangelogMissingFailureAnalyzerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/r2dbc/ConnectionFactoryBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnectionTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnectionTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnectionTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/r2dbc/EmbeddedDatabaseConnectionTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/r2dbc/init/R2dbcScriptDatabaseInitializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/reactor/InstrumentedFluxProvider.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/reactor/InstrumentedFluxProvider.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/reactor/InstrumentedFluxProvider.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/reactor/InstrumentedFluxProvider.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessorTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessorTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessorTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/reactor/ReactorEnvironmentPostProcessorTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/rsocket/context/RSocketPortInfoApplicationContextInitializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/rsocket/netty/NettyRSocketServerFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcherTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcherTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcherTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/security/reactive/ApplicationContextServerWebExchangeMatcherTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcherTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcherTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcherTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/security/servlet/ApplicationContextRequestMatcherTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/sql/init/AbstractScriptDatabaseInitializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/sql/init/dependency/DatabaseInitializationDependencyConfigurerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/SimpleAsyncTaskExecutorBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/SimpleAsyncTaskSchedulerBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/ThreadPoolTaskExecutorBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/task/ThreadPoolTaskSchedulerBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/type/classreading/ConcurrentReferenceCachingMetadataReaderFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/AbstractClientHttpRequestFactoriesTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/AbstractClientHttpRequestFactoriesTests.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/AbstractClientHttpRequestFactoriesTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/AbstractClientHttpRequestFactoriesTests.java
index 41d0571e664d..8ea57cc0cc4f 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/AbstractClientHttpRequestFactoriesTests.java
+++ b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/AbstractClientHttpRequestFactoriesTests.java
@@ -38,10 +38,10 @@
import org.springframework.boot.ssl.jks.JksSslStoreDetails;
import org.springframework.boot.testsupport.classpath.resources.WithPackageResources;
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.Ssl.ClientAuth;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.http.HttpMethod;
import org.springframework.http.client.ClientHttpRequest;
import org.springframework.http.client.ClientHttpRequestFactory;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/AbstractRestTemplateBuilderRequestFactoryConfigurationTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/AbstractRestTemplateBuilderRequestFactoryConfigurationTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/AbstractRestTemplateBuilderRequestFactoryConfigurationTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/AbstractRestTemplateBuilderRequestFactoryConfigurationTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesHttpComponentsTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesHttpComponentsTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesHttpComponentsTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesHttpComponentsTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesJettyTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesJettyTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesJettyTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesJettyTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesReactorTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesReactorTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesReactorTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesReactorTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesSimpleTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesSimpleTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesSimpleTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesSimpleTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactoriesTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettingsTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettingsTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettingsTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/ClientHttpRequestFactorySettingsTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderClientHttpRequestInitializerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RestTemplateBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriBuilderFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RootUriBuilderFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriBuilderFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RootUriBuilderFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/client/RootUriTemplateHandlerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributesTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributesTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributesTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/reactive/error/DefaultErrorAttributesTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolverTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolverTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolverTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewResolverTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/reactive/result/view/MustacheViewTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/jetty/JettyAccess.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/jetty/JettyAccess.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/jetty/JettyAccess.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/jetty/JettyAccess.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/jetty/SslServerCustomizerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/jetty/SslServerCustomizerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/jetty/SslServerCustomizerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/jetty/SslServerCustomizerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/reactive/jetty/JettyReactiveWebServerFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/reactive/netty/NettyReactiveWebServerFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/reactive/undertow/UndertowReactiveWebServerFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/jetty/JettyServletWebServerFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResourceTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResourceTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResourceTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/jetty/LoaderHidingResourceTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistenceTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistenceTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistenceTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/undertow/FileSessionPersistenceTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManagerTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManagerTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManagerTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/undertow/JarResourceManagerTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/servlet/undertow/UndertowServletWebServerFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/undertow/UndertowAccess.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/undertow/UndertowAccess.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/undertow/UndertowAccess.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/undertow/UndertowAccess.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/undertow/UndertowWebServerRuntimeHintsTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/undertow/UndertowWebServerRuntimeHintsTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/undertow/UndertowWebServerRuntimeHintsTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/server/undertow/UndertowWebServerRuntimeHintsTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/context/ServletWebServerMvcIntegrationTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/context/ServletWebServerMvcIntegrationTests.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/context/ServletWebServerMvcIntegrationTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/context/ServletWebServerMvcIntegrationTests.java
index 82dce656fa2d..e29d8c86ba56 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/context/ServletWebServerMvcIntegrationTests.java
+++ b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/context/ServletWebServerMvcIntegrationTests.java
@@ -23,10 +23,10 @@
import org.springframework.boot.testsupport.classpath.resources.WithResource;
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
import org.springframework.boot.web.server.servlet.jetty.JettyServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/ErrorPageFilterIntegrationTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/support/ErrorPageFilterIntegrationTests.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/ErrorPageFilterIntegrationTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/support/ErrorPageFilterIntegrationTests.java
index 671e9ef964cb..f164435129a1 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/ErrorPageFilterIntegrationTests.java
+++ b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/support/ErrorPageFilterIntegrationTests.java
@@ -27,8 +27,8 @@
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.boot.web.servlet.support.ErrorPageFilterIntegrationTests.EmbeddedWebContextLoader;
import org.springframework.context.ApplicationContext;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewResolverTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewResolverTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewResolverTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewResolverTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/web/servlet/view/MustacheViewTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderJettyClientIntegrationTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderJettyClientIntegrationTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderJettyClientIntegrationTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderJettyClientIntegrationTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderReactorClientIntegrationTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderReactorClientIntegrationTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderReactorClientIntegrationTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderReactorClientIntegrationTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderSimpleIntegrationTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderSimpleIntegrationTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderSimpleIntegrationTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderSimpleIntegrationTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/HttpWebServiceMessageSenderBuilderTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactoryTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactoryTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactoryTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/WebServiceMessageSenderFactoryTests.java
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java b/spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java
rename to spring-boot-project/spring-boot-all/src/test/java/org/springframework/boot/webservices/client/WebServiceTemplateBuilderTests.java
diff --git a/spring-boot-project/spring-boot-all/src/test/resources/log4j2-test.xml b/spring-boot-project/spring-boot-all/src/test/resources/log4j2-test.xml
new file mode 100644
index 000000000000..66496afcd8af
--- /dev/null
+++ b/spring-boot-project/spring-boot-all/src/test/resources/log4j2-test.xml
@@ -0,0 +1,17 @@
+
+
+
+ %xwEx
+ %5p
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/http/client/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/http/client/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/http/client/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/http/client/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/info/test-expired.p12 b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/info/test-expired.p12
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/info/test-expired.p12
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/info/test-expired.p12
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/info/test-not-yet-valid.p12 b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/info/test-not-yet-valid.p12
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/info/test-not-yet-valid.p12
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/info/test-not-yet-valid.p12
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/info/test.p12 b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/info/test.p12
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/info/test.p12
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/info/test.p12
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/rsocket/netty/test-cert.pem b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/rsocket/netty/test-cert.pem
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/rsocket/netty/test-cert.pem
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/rsocket/netty/test-cert.pem
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/rsocket/netty/test-key.pem b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/rsocket/netty/test-key.pem
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/rsocket/netty/test-key.pem
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/rsocket/netty/test-key.pem
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/rsocket/netty/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/rsocket/netty/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/rsocket/netty/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/rsocket/netty/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/client/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/client/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/client/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/client/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/jetty/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/jetty/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/jetty/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/jetty/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.crt b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.crt
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.crt
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.crt
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.key b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.key
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.key
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/1.key
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.crt b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.crt
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.crt
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.crt
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.key b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.key
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.key
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/2.key
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/netty/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/reactive/netty/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/servlet/jetty/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/reactive/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/servlet/jetty/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/undertow/restricted.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/servlet/undertow/restricted.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/undertow/restricted.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/servlet/undertow/restricted.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/jetty/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/servlet/undertow/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/jetty/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/servlet/undertow/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/test.jks b/spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/undertow/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/test.jks
rename to spring-boot-project/spring-boot-all/src/test/resources/org/springframework/boot/web/server/undertow/test.jks
diff --git a/spring-boot-project/spring-boot-autoconfigure/build.gradle b/spring-boot-project/spring-boot-autoconfigure/build.gradle
index 6d062d9ce6c2..dc5dcd2b622c 100644
--- a/spring-boot-project/spring-boot-autoconfigure/build.gradle
+++ b/spring-boot-project/spring-boot-autoconfigure/build.gradle
@@ -20,7 +20,7 @@ configurations.all {
}
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
@@ -39,6 +39,7 @@ dependencies {
dockerTestImplementation("org.testcontainers:pulsar")
dockerTestImplementation("org.testcontainers:testcontainers")
+ optional(project(":spring-boot-project:spring-boot-tomcat"))
optional("co.elastic.clients:elasticsearch-java") {
exclude group: "commons-logging", module: "commons-logging"
}
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfiguration.java
index c7ad89e52773..0a3af3917c10 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfiguration.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/EnableAutoConfiguration.java
@@ -27,8 +27,8 @@
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.context.annotation.ImportCandidates;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfiguration.java
index 7a4dfbfa51e9..7754752bb13b 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfiguration.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfiguration.java
@@ -28,11 +28,11 @@
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatServerProperties;
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatWebServerConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatProtocolHandlerCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
import org.springframework.http.ReactiveHttpInputMessage;
@@ -45,7 +45,7 @@
* @since 4.0.0
*/
@AutoConfiguration
-@ConditionalOnClass({ ReactiveHttpInputMessage.class, Tomcat.class })
+@ConditionalOnClass({ ReactiveHttpInputMessage.class, Tomcat.class, TomcatReactiveWebServerFactory.class })
@ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE)
@EnableConfigurationProperties(TomcatServerProperties.class)
@Import({ TomcatWebServerConfiguration.class, ReactiveWebServerConfiguration.class })
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryCustomizer.java
index d60397873c7f..258d7174c3e5 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryCustomizer.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryCustomizer.java
@@ -17,8 +17,8 @@
package org.springframework.boot.autoconfigure.web.server.reactive.tomcat;
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatServerProperties;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
/**
* {@link WebServerFactoryCustomizer} to apply {@link TomcatServerProperties} to Tomcat
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfiguration.java
index 5fe2529cef5d..3c5f0b842cce 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfiguration.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfiguration.java
@@ -35,11 +35,11 @@
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatServerProperties;
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatWebServerConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
+import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatProtocolHandlerCustomizer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Import;
@@ -51,7 +51,7 @@
* @since 4.0.0
*/
@AutoConfiguration
-@ConditionalOnClass({ ServletRequest.class, Tomcat.class, UpgradeProtocol.class })
+@ConditionalOnClass({ ServletRequest.class, Tomcat.class, UpgradeProtocol.class, TomcatServletWebServerFactory.class })
@ConditionalOnWebApplication(type = Type.SERVLET)
@EnableConfigurationProperties(TomcatServerProperties.class)
@Import({ ServletWebServerConfiguration.class, TomcatWebServerConfiguration.class })
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizer.java
index 12efedbdd0f0..0d057da0871e 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizer.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizer.java
@@ -17,9 +17,9 @@
package org.springframework.boot.autoconfigure.web.server.servlet.tomcat;
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatServerProperties;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
import org.springframework.core.Ordered;
import org.springframework.util.ObjectUtils;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizer.java
index abef8ea53a6b..f5d35ded8ea6 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizer.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizer.java
@@ -19,8 +19,8 @@
import org.apache.coyote.ProtocolHandler;
import org.apache.tomcat.util.threads.VirtualThreadExecutor;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
import org.springframework.core.Ordered;
/**
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizer.java
index 54224af4b7da..a8fc27619aa6 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizer.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizer.java
@@ -38,8 +38,8 @@
import org.springframework.boot.autoconfigure.web.server.tomcat.TomcatServerProperties.Remoteip;
import org.springframework.boot.cloud.CloudPlatform;
import org.springframework.boot.context.properties.PropertyMapper;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
import org.springframework.core.Ordered;
import org.springframework.core.env.Environment;
import org.springframework.util.StringUtils;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/WebSocketTomcatWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/WebSocketTomcatWebServerFactoryCustomizer.java
index 46680b91cc1b..651d30c8d2f4 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/WebSocketTomcatWebServerFactoryCustomizer.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/server/tomcat/WebSocketTomcatWebServerFactoryCustomizer.java
@@ -18,8 +18,8 @@
import org.apache.tomcat.websocket.server.WsSci;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
/**
* {@link WebServerFactoryCustomizer} that configures Tomcat's WebSocket support.
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java
index c5ec988b323c..ee1e9251551e 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/jersey/JerseyAutoConfigurationServletContainerTests.java
@@ -37,7 +37,7 @@
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
import org.springframework.boot.test.system.CapturedOutput;
import org.springframework.boot.test.system.OutputCaptureExtension;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfigurationTests.java
index ea36faf7584b..cb13fe8f0eec 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfigurationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/oauth2/client/servlet/OAuth2WebSecurityConfigurationTests.java
@@ -27,7 +27,7 @@
import org.springframework.boot.test.context.FilteredClassLoader;
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfigurationEarlyInitializationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfigurationEarlyInitializationTests.java
index c2d8006043a6..b817eed0fb38 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfigurationEarlyInitializationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityFilterAutoConfigurationEarlyInitializationTests.java
@@ -39,7 +39,7 @@
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.testsupport.classpath.ClassPathExclusions;
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/TomcatServerPropertiesTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/TomcatServerPropertiesTests.java
index 732edc55799e..7721d321434d 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/TomcatServerPropertiesTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/TomcatServerPropertiesTests.java
@@ -36,7 +36,7 @@
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.boot.context.properties.source.ConfigurationPropertySource;
import org.springframework.boot.context.properties.source.MapConfigurationPropertySource;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.test.util.ReflectionTestUtils;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AbstractClientHttpConnectorFactoryTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AbstractClientHttpConnectorFactoryTests.java
index a913b92344e0..9a798d51d2b0 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AbstractClientHttpConnectorFactoryTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/reactive/function/client/AbstractClientHttpConnectorFactoryTests.java
@@ -22,10 +22,10 @@
import org.springframework.boot.ssl.SslBundleKey;
import org.springframework.boot.ssl.jks.JksSslStoreBundle;
import org.springframework.boot.ssl.jks.JksSslStoreDetails;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.Ssl.ClientAuth;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.web.reactive.function.client.WebClient;
import org.springframework.web.reactive.function.client.WebClientRequestException;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfigurationTests.java
index 13b961d639a4..19a7aed76ab4 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/reactive/tomcat/TomcatReactiveWebServerAutoConfigurationTests.java
@@ -25,14 +25,14 @@
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.web.server.reactive.AbstractReactiveWebServerAutoConfigurationTests;
+import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.boot.web.reactive.context.ReactiveWebServerApplicationContext;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatProtocolHandlerCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/ServletWebServerServletContextListenerTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/ServletWebServerServletContextListenerTests.java
index 0977016a3021..7f5b853249bd 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/ServletWebServerServletContextListenerTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/ServletWebServerServletContextListenerTests.java
@@ -26,10 +26,10 @@
import org.springframework.boot.testsupport.classpath.ForkedClassPath;
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
import org.springframework.boot.web.server.servlet.jetty.JettyServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfigurationTests.java
index 150da43e9464..c498debdcdf6 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerAutoConfigurationTests.java
@@ -22,11 +22,11 @@
import org.junit.jupiter.api.Test;
import org.springframework.boot.autoconfigure.web.server.servlet.AbstractServletWebServerAutoConfigurationTests;
+import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatProtocolHandlerCustomizer;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizerTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizerTests.java
index 175d0ec31fb1..6e89e75324da 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizerTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/servlet/tomcat/TomcatServletWebServerFactoryCustomizerTests.java
@@ -24,8 +24,8 @@
import org.springframework.boot.context.properties.bind.Bindable;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.mock.env.MockEnvironment;
import org.springframework.test.context.support.TestPropertySourceUtils;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizerTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizerTests.java
index 0a4962b10479..0826bc99454b 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizerTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatVirtualThreadsWebServerFactoryCustomizerTests.java
@@ -23,8 +23,8 @@
import org.junit.jupiter.api.condition.EnabledForJreRange;
import org.junit.jupiter.api.condition.JRE;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizerTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizerTests.java
index 08074f7f590d..d1da965380e5 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizerTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/server/tomcat/TomcatWebServerFactoryCustomizerTests.java
@@ -37,9 +37,9 @@
import org.springframework.boot.context.properties.bind.Bindable;
import org.springframework.boot.context.properties.bind.Binder;
import org.springframework.boot.context.properties.source.ConfigurationPropertySources;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.mock.env.MockEnvironment;
import org.springframework.test.context.support.TestPropertySourceUtils;
import org.springframework.util.unit.DataSize;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfigurationTests.java
index 7ed088499259..d94c27737cd8 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/MultipartAutoConfigurationTests.java
@@ -32,8 +32,8 @@
import org.springframework.boot.test.util.TestPropertyValues;
import org.springframework.boot.testsupport.classpath.ForkedClassPath;
import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.jetty.JettyServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java
index 1cc5d5d1a34a..566efb07e9fb 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/web/servlet/WebMvcAutoConfigurationTests.java
@@ -57,9 +57,9 @@
import org.springframework.boot.test.context.assertj.AssertableWebApplicationContext;
import org.springframework.boot.test.context.runner.ContextConsumer;
import org.springframework.boot.test.context.runner.WebApplicationContextRunner;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizerBeanPostProcessor;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/websocket/servlet/WebSocketMessagingAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/websocket/servlet/WebSocketMessagingAutoConfigurationTests.java
index 9a129813f986..a51e30c954d3 100644
--- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/websocket/servlet/WebSocketMessagingAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/websocket/servlet/WebSocketMessagingAutoConfigurationTests.java
@@ -45,7 +45,7 @@
import org.springframework.boot.autoconfigure.websocket.servlet.WebSocketMessagingAutoConfiguration.WebSocketMessageConverterConfiguration;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.test.util.TestPropertyValues;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle
index 42d409ed12d8..4caa28a3bc89 100644
--- a/spring-boot-project/spring-boot-dependencies/build.gradle
+++ b/spring-boot-project/spring-boot-dependencies/build.gradle
@@ -1193,8 +1193,9 @@ bom {
}
library("Kotlin", "${kotlinVersion}") {
prohibit {
- versionRange "[2.0.0-Beta1,)"
- because "it exceeds our baseline"
+ contains "-Beta"
+ contains "-RC"
+ because "we don't want betas or release candidates"
}
group("org.jetbrains.kotlin") {
imports = [
diff --git a/spring-boot-project/spring-boot-devtools/build.gradle b/spring-boot-project/spring-boot-devtools/build.gradle
index eb4fe1b63737..eb7ab3f2e063 100644
--- a/spring-boot-project/spring-boot-devtools/build.gradle
+++ b/spring-boot-project/spring-boot-devtools/build.gradle
@@ -23,7 +23,7 @@ artifacts {
}
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
intTestDependencies(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-web"))
@@ -52,8 +52,9 @@ dependencies {
optional("org.springframework.data:spring-data-redis")
optional("org.springframework.session:spring-session-core")
- testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
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("ch.qos.logback:logback-classic")
testImplementation("com.h2database:h2")
testImplementation("com.zaxxer:HikariCP")
diff --git a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java
index d127533bea83..47083f17979a 100644
--- a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java
+++ b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/LocalDevToolsAutoConfigurationTests.java
@@ -44,7 +44,7 @@
import org.springframework.boot.devtools.restart.MockRestartInitializer;
import org.springframework.boot.devtools.restart.MockRestarter;
import org.springframework.boot.devtools.restart.Restarter;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/remote/client/RemoteClientConfigurationTests.java b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/remote/client/RemoteClientConfigurationTests.java
index ba9c277069a4..2a4f4965311c 100644
--- a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/remote/client/RemoteClientConfigurationTests.java
+++ b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/remote/client/RemoteClientConfigurationTests.java
@@ -40,7 +40,7 @@
import org.springframework.boot.test.system.CapturedOutput;
import org.springframework.boot.test.system.OutputCaptureExtension;
import org.springframework.boot.test.util.TestPropertyValues;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.annotation.Bean;
diff --git a/spring-boot-project/spring-boot-docker-compose/build.gradle b/spring-boot-project/spring-boot-docker-compose/build.gradle
index 73c4c32df884..f45f5d7eead2 100644
--- a/spring-boot-project/spring-boot-docker-compose/build.gradle
+++ b/spring-boot-project/spring-boot-docker-compose/build.gradle
@@ -9,7 +9,7 @@ plugins {
description = "Spring Boot Docker Compose Support"
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
dockerTestImplementation("com.hazelcast:hazelcast")
diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle
index d51787e6355c..c4bde4fa1231 100644
--- a/spring-boot-project/spring-boot-docs/build.gradle
+++ b/spring-boot-project/spring-boot-docs/build.gradle
@@ -1,3 +1,5 @@
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+
plugins {
id "dev.adamko.dokkatoo-html"
id "java"
@@ -64,13 +66,14 @@ dependencies {
configurationProperties(project(path: ":spring-boot-project:spring-boot-test-autoconfigure", configuration: "configurationPropertiesMetadata"))
configurationProperties(project(path: ":spring-boot-project:spring-boot-testcontainers", configuration: "configurationPropertiesMetadata"))
- dokkatoo(project(path: ":spring-boot-project:spring-boot"))
+ dokkatoo(project(path: ":spring-boot-project:spring-boot-all"))
dokkatoo(project(path: ":spring-boot-project:spring-boot-test"))
implementation(project(path: ":spring-boot-project:spring-boot-actuator"))
implementation(project(path: ":spring-boot-project:spring-boot-actuator-autoconfigure"))
implementation(project(path: ":spring-boot-project:spring-boot-autoconfigure"))
implementation(project(path: ":spring-boot-project:spring-boot-docker-compose"))
+ implementation(project(path: ":spring-boot-project:spring-boot-tomcat"))
implementation(project(path: ":spring-boot-project:spring-boot-tools:spring-boot-cli"))
implementation(project(path: ":spring-boot-project:spring-boot-tools:spring-boot-loader-tools"))
implementation(project(path: ":spring-boot-project:spring-boot-test"))
@@ -304,6 +307,26 @@ task runLoggingFormatExample(type: org.springframework.boot.build.docs.Applicati
normalizeTomcatPort()
}
+// To avoid a redeclaration error with Kotlin compiler
+tasks.withType(KotlinCompile) {
+ javaSources.from = [
+ "src/main/java/org/springframework/boot/docs/data/nosql/cassandra/connecting/User.java",
+ "src/main/java/org/springframework/boot/docs/features/devservices/testcontainers/atdevelopmenttime/importingcontainerdeclarations/MyContainers.java",
+ "src/main/java/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/Server.java",
+ "src/main/java/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/CacheCompletelyBrokenException.java",
+ "src/main/java/org/springframework/boot/docs/packaging/nativeimage/advanced/nestedconfigurationproperties/Nested.java",
+ "src/main/java/org/springframework/boot/docs/using/springbeansanddependencyinjection/multipleconstructors/AccountService.java",
+ "src/main/java/org/springframework/boot/docs/using/springbeansanddependencyinjection/multipleconstructors/RiskAssessor.java",
+ "src/main/java/org/springframework/boot/docs/using/springbeansanddependencyinjection/singleconstructor/AccountService.java",
+ "src/main/java/org/springframework/boot/docs/using/springbeansanddependencyinjection/singleconstructor/RiskAssessor.java",
+ "src/main/java/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/individualannotations/AnotherConfiguration.java",
+ "src/main/java/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/individualannotations/SomeConfiguration.java",
+ "src/main/java/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/MyErrorBody.java",
+ "src/main/java/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/MyException.java",
+ "src/main/java/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/SomeController.java",
+ ]
+}
+
def getRelativeExamplesPath(var outputs) {
def fileName = outputs.files.singleFile.name
'example$example-output/' + fileName
diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.java
index ca332c1ef2e4..f36cd1f37222 100644
--- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.java
+++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.java
@@ -30,8 +30,8 @@
import org.apache.catalina.core.StandardContext;
import org.apache.catalina.startup.Tomcat;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletContextInitializer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.java
index 823e79921655..883bd6d9126a 100644
--- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.java
+++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.java
@@ -16,8 +16,8 @@
package org.springframework.boot.docs.howto.webserver.configure;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.stereotype.Component;
@Component
diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.java
index 40eb69c3fb44..3a20c9f3ebd8 100644
--- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.java
+++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.java
@@ -18,8 +18,8 @@
import org.apache.catalina.connector.Connector;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.java b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.java
index 3cebffa9a797..e4a71f7d422d 100644
--- a/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.java
+++ b/spring-boot-project/spring-boot-docs/src/main/java/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.java
@@ -18,8 +18,8 @@
import java.time.Duration;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.stereotype.Component;
@Component
diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.kt
index abce40770780..46b1d3173ba3 100644
--- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.kt
+++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyCloudFoundryConfiguration.kt
@@ -27,7 +27,7 @@ import org.apache.catalina.Host
import org.apache.catalina.core.StandardContext
import org.apache.catalina.startup.Tomcat.FixContextListener
import org.springframework.boot.web.server.servlet.ServletContextInitializer
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
import java.io.IOException
diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.kt
index 18b44bbf4e01..a10e299b44c3 100644
--- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.kt
+++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/configure/MyTomcatWebServerCustomizer.kt
@@ -17,7 +17,7 @@
package org.springframework.boot.docs.howto.webserver.configure
import org.springframework.boot.web.server.WebServerFactoryCustomizer
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory
import org.springframework.stereotype.Component
@Component
diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.kt
index 961987ccefb1..b069f11a2a49 100644
--- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.kt
+++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/enablemultipleconnectorsintomcat/MyTomcatConfiguration.kt
@@ -18,7 +18,7 @@ package org.springframework.boot.docs.howto.webserver.enablemultipleconnectorsin
import org.apache.catalina.connector.Connector
import org.springframework.boot.web.server.WebServerFactoryCustomizer
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory
import org.springframework.context.annotation.Bean
import org.springframework.context.annotation.Configuration
diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.kt
index f8a0830c6302..5a7ed203b2d4 100644
--- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.kt
+++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyTomcatWebServerFactoryCustomizer.kt
@@ -17,7 +17,7 @@
package org.springframework.boot.docs.web.servlet.embeddedcontainer.customizing.programmatic
import org.springframework.boot.web.server.WebServerFactoryCustomizer
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory
import org.springframework.stereotype.Component
import java.time.Duration
diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle
index f859ef7daeef..6c90c9aaa9c2 100644
--- a/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle
+++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle
@@ -5,10 +5,8 @@ plugins {
description = "Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web"
dependencies {
+ api(project(":spring-boot-project:spring-boot-tomcat"))
api("jakarta.annotation:jakarta.annotation-api")
- api("org.apache.tomcat.embed:tomcat-embed-core") {
- exclude group: "org.apache.tomcat", module: "tomcat-annotations-api"
- }
api("org.apache.tomcat.embed:tomcat-embed-el")
api("org.apache.tomcat.embed:tomcat-embed-websocket") {
exclude group: "org.apache.tomcat", module: "tomcat-annotations-api"
diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle
index 1e5a6fb6f762..33e8def32887 100644
--- a/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle
+++ b/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle
@@ -5,7 +5,7 @@ plugins {
description = "Core starter, including auto-configuration support, logging and YAML"
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
api(project(":spring-boot-project:spring-boot-starters:spring-boot-starter-logging"))
api("jakarta.annotation:jakarta.annotation-api")
diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle
index 4e078f780bb7..981b31f9e897 100644
--- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle
+++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle
@@ -8,7 +8,7 @@ plugins {
description = "Spring Boot Test AutoConfigure"
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
api(project(":spring-boot-project:spring-boot-test"))
api(project(":spring-boot-project:spring-boot-autoconfigure"))
@@ -119,6 +119,8 @@ dependencies {
testImplementation("org.springframework.hateoas:spring-hateoas")
testImplementation("org.springframework.plugin:spring-plugin-core")
testImplementation("org.thymeleaf:thymeleaf")
+
+ testRuntimeOnly(project(":spring-boot-project:spring-boot-tomcat"))
}
configurations {
diff --git a/spring-boot-project/spring-boot-test/build.gradle b/spring-boot-project/spring-boot-test/build.gradle
index dd73e9729a06..4f71e191c9a9 100644
--- a/spring-boot-project/spring-boot-test/build.gradle
+++ b/spring-boot-project/spring-boot-test/build.gradle
@@ -9,7 +9,7 @@ plugins {
description = "Spring Boot Test"
dependencies {
- api(project(":spring-boot-project:spring-boot"))
+ api(project(":spring-boot-project:spring-boot-all"))
api("org.springframework:spring-test")
optional("com.fasterxml.jackson.core:jackson-databind")
@@ -40,6 +40,7 @@ dependencies {
optional("org.springframework:spring-webflux")
optional("org.springframework.graphql:spring-graphql-test")
+ testImplementation(project(":spring-boot-project:spring-boot-tomcat"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testImplementation("io.mockk:mockk")
testImplementation("jakarta.json:jakarta.json-api")
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestEmbeddedReactiveWebEnvironmentTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestEmbeddedReactiveWebEnvironmentTests.java
index 52da84380f04..6d475345305f 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestEmbeddedReactiveWebEnvironmentTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestEmbeddedReactiveWebEnvironmentTests.java
@@ -25,9 +25,9 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext;
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestWebServerWebEnvironmentTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestWebServerWebEnvironmentTests.java
index 9a30cdb8d8bf..95cf022233c7 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestWebServerWebEnvironmentTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/context/AbstractSpringBootTestWebServerWebEnvironmentTests.java
@@ -23,8 +23,8 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.web.client.TestRestTemplate;
import org.springframework.boot.test.web.server.LocalServerPort;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerIntegrationTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerIntegrationTests.java
index 8fc226721c54..d01b6ab7013a 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerIntegrationTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerIntegrationTests.java
@@ -24,7 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomBasePathTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomBasePathTests.java
index cff9e6492ca7..197b1a871984 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomBasePathTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomBasePathTests.java
@@ -24,7 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomContextPathTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomContextPathTests.java
index 47df5fe13ac1..29d6d989eba6 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomContextPathTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/graphql/tester/HttpGraphQlTesterContextCustomizerWithCustomContextPathTests.java
@@ -20,7 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerIntegrationTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerIntegrationTests.java
index 53d1877223ed..bfd00861a27a 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerIntegrationTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerIntegrationTests.java
@@ -28,7 +28,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithFactoryBeanTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithFactoryBeanTests.java
index e1fff6706594..1331f96ba462 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithFactoryBeanTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithFactoryBeanTests.java
@@ -21,7 +21,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithOverrideIntegrationTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithOverrideIntegrationTests.java
index 58300e8f23c2..3e532e154b21 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithOverrideIntegrationTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/client/TestRestTemplateContextCustomizerWithOverrideIntegrationTests.java
@@ -28,7 +28,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerIntegrationTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerIntegrationTests.java
index aa949d75fa84..29f0831c42ff 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerIntegrationTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerIntegrationTests.java
@@ -22,7 +22,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomBasePathTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomBasePathTests.java
index b102f5fe93c5..03eb3b4c9843 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomBasePathTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomBasePathTests.java
@@ -24,7 +24,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.buffer.DefaultDataBufferFactory;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomContextPathTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomContextPathTests.java
index 7d7bb48feb26..a65f7970bea9 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomContextPathTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithCustomContextPathTests.java
@@ -20,7 +20,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithOverrideIntegrationTests.java b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithOverrideIntegrationTests.java
index 2d8ecb1a0f0d..48f6b6a0f042 100644
--- a/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithOverrideIntegrationTests.java
+++ b/spring-boot-project/spring-boot-test/src/test/java/org/springframework/boot/test/web/reactive/server/WebTestClientContextCustomizerWithOverrideIntegrationTests.java
@@ -22,7 +22,7 @@
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.SpringBootTest.WebEnvironment;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
diff --git a/spring-boot-project/spring-boot-tomcat/build.gradle b/spring-boot-project/spring-boot-tomcat/build.gradle
new file mode 100644
index 000000000000..14b30bb065e5
--- /dev/null
+++ b/spring-boot-project/spring-boot-tomcat/build.gradle
@@ -0,0 +1,55 @@
+plugins {
+ id "java-library"
+ id "org.springframework.boot.deployed"
+ id "org.springframework.boot.optional-dependencies"
+}
+
+description = "Spring Boot Tomcat"
+
+def tomcatConfigProperties = layout.buildDirectory.dir("tomcat-config-properties")
+
+configurations {
+ tomcatDistribution
+}
+
+dependencies {
+ api(project(":spring-boot-project:spring-boot"))
+ api("org.apache.tomcat.embed:tomcat-embed-core") {
+ exclude group: "org.apache.tomcat", module: "tomcat-annotations-api"
+ }
+
+ optional("org.apache.tomcat.embed:tomcat-embed-jasper")
+ optional("org.springframework:spring-webflux")
+
+ testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
+ testImplementation(testFixtures(project(":spring-boot-project:spring-boot")))
+ testImplementation("org.apache.httpcomponents.client5:httpclient5")
+ testImplementation("org.assertj:assertj-core")
+ testImplementation("org.awaitility:awaitility")
+ testImplementation("org.junit.jupiter:junit-jupiter")
+ testImplementation("org.mockito:mockito-core")
+ testImplementation("org.mockito:mockito-junit-jupiter")
+
+ testRuntimeOnly("ch.qos.logback:logback-classic")
+
+ tomcatDistribution("org.apache.tomcat:tomcat:${tomcatVersion}@zip")
+}
+
+task extractTomcatConfigProperties(type: Sync) {
+ destinationDir = file(tomcatConfigProperties)
+ from {
+ zipTree(configurations.tomcatDistribution.incoming.files.singleFile).matching {
+ include '**/conf/catalina.properties'
+ }.singleFile
+ }
+}
+
+sourceSets {
+ test {
+ output.dir(tomcatConfigProperties, builtBy: "extractTomcatConfigProperties")
+ }
+}
+
+test {
+ jvmArgs += "--add-opens=java.base/java.net=ALL-UNNAMED"
+}
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/CompressionConnectorCustomizer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/CompressionConnectorCustomizer.java
similarity index 97%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/CompressionConnectorCustomizer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/CompressionConnectorCustomizer.java
index 4c28bd9737d9..629adfc4ce23 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/CompressionConnectorCustomizer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/CompressionConnectorCustomizer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.ProtocolHandler;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConfigurableTomcatWebServerFactory.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConfigurableTomcatWebServerFactory.java
similarity index 92%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConfigurableTomcatWebServerFactory.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConfigurableTomcatWebServerFactory.java
index d5f71feabffd..43e84c481aa4 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConfigurableTomcatWebServerFactory.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConfigurableTomcatWebServerFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.io.File;
import java.nio.charset.Charset;
@@ -24,9 +24,9 @@
import org.apache.catalina.Valve;
import org.apache.catalina.connector.Connector;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.ConfigurableWebServerFactory;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
/**
* {@link ConfigurableWebServerFactory} for Tomcat-specific features.
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConnectorStartFailedException.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConnectorStartFailedException.java
similarity index 96%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConnectorStartFailedException.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConnectorStartFailedException.java
index 729f4567ad1f..c548fe3425da 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConnectorStartFailedException.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConnectorStartFailedException.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.connector.Connector;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConnectorStartFailureAnalyzer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConnectorStartFailureAnalyzer.java
similarity index 96%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConnectorStartFailureAnalyzer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConnectorStartFailureAnalyzer.java
index cbe6db190db3..a2b4df85dd93 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/ConnectorStartFailureAnalyzer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/ConnectorStartFailureAnalyzer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.springframework.boot.diagnostics.AbstractFailureAnalyzer;
import org.springframework.boot.diagnostics.FailureAnalysis;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/DisableReferenceClearingContextCustomizer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/DisableReferenceClearingContextCustomizer.java
similarity index 96%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/DisableReferenceClearingContextCustomizer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/DisableReferenceClearingContextCustomizer.java
index 09961233051b..a2664f7bedc7 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/DisableReferenceClearingContextCustomizer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/DisableReferenceClearingContextCustomizer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.Context;
import org.apache.catalina.core.StandardContext;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/GracefulShutdown.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/GracefulShutdown.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/GracefulShutdown.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/GracefulShutdown.java
index 1df1ff2d2ef9..4f72c6d59cf2 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/GracefulShutdown.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/GracefulShutdown.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.ArrayList;
import java.util.Collections;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/LazySessionIdGenerator.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/LazySessionIdGenerator.java
similarity index 95%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/LazySessionIdGenerator.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/LazySessionIdGenerator.java
index 9869a506cd37..1b32167c7cde 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/LazySessionIdGenerator.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/LazySessionIdGenerator.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.LifecycleState;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/SslConnectorCustomizer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/SslConnectorCustomizer.java
similarity index 99%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/SslConnectorCustomizer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/SslConnectorCustomizer.java
index 590ab1503723..6c6bf0bf45be 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/SslConnectorCustomizer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/SslConnectorCustomizer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.Map;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatConnectorCustomizer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatConnectorCustomizer.java
similarity index 95%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatConnectorCustomizer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatConnectorCustomizer.java
index b5d6a62a134b..19057e882468 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatConnectorCustomizer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatConnectorCustomizer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.connector.Connector;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatContextCustomizer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatContextCustomizer.java
similarity index 87%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatContextCustomizer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatContextCustomizer.java
index b953df2006cb..832acf1be0c2 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatContextCustomizer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatContextCustomizer.java
@@ -14,11 +14,11 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.Context;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
/**
* Callback interface that can be used to customize a Tomcat {@link Context}.
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedContext.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatEmbeddedContext.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedContext.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatEmbeddedContext.java
index 62c13dd2de11..1de363117509 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedContext.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatEmbeddedContext.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.ArrayList;
import java.util.Arrays;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedWebappClassLoader.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatEmbeddedWebappClassLoader.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedWebappClassLoader.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatEmbeddedWebappClassLoader.java
index 75226c6d09be..2d48cfa753ad 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedWebappClassLoader.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatEmbeddedWebappClassLoader.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.io.IOException;
import java.net.URL;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatProtocolHandlerCustomizer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatProtocolHandlerCustomizer.java
similarity index 95%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatProtocolHandlerCustomizer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatProtocolHandlerCustomizer.java
index 870202f205ad..cbc7825eb392 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatProtocolHandlerCustomizer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatProtocolHandlerCustomizer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.ProtocolHandler;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatStarter.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatStarter.java
similarity index 97%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatStarter.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatStarter.java
index 6bdea21f4318..4740710f7ea9 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatStarter.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatStarter.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.Set;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatWebServer.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatWebServer.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatWebServer.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatWebServer.java
index 7f84cc870a9a..bae14313e87f 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatWebServer.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatWebServer.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.Arrays;
import java.util.HashMap;
@@ -39,14 +39,14 @@
import org.apache.commons.logging.LogFactory;
import org.apache.naming.ContextBindings;
+import org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory;
+import org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory;
import org.springframework.boot.web.server.GracefulShutdownCallback;
import org.springframework.boot.web.server.GracefulShutdownResult;
import org.springframework.boot.web.server.PortInUseException;
import org.springframework.boot.web.server.Shutdown;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.WebServerException;
-import org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
import org.springframework.util.Assert;
import org.springframework.util.StringUtils;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatWebServerFactory.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatWebServerFactory.java
similarity index 99%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatWebServerFactory.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatWebServerFactory.java
index d349c17d6933..474bee842162 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/TomcatWebServerFactory.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/TomcatWebServerFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.io.File;
import java.nio.charset.Charset;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/package-info.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/package-info.java
similarity index 75%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/package-info.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/package-info.java
index a8c97e23d520..88ec60416573 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/tomcat/package-info.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/package-info.java
@@ -17,7 +17,7 @@
/**
* Reactive and servlet web server implementations backed by Tomcat.
*
- * @see org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory
- * @see org.springframework.boot.web.server.reactive.tomcat.TomcatReactiveWebServerFactory
+ * @see org.springframework.boot.tomcat.servlet.TomcatServletWebServerFactory
+ * @see org.springframework.boot.tomcat.reactive.TomcatReactiveWebServerFactory
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/tomcat/TomcatReactiveWebServerFactory.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/reactive/TomcatReactiveWebServerFactory.java
similarity index 89%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/tomcat/TomcatReactiveWebServerFactory.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/reactive/TomcatReactiveWebServerFactory.java
index 2fde4918e335..7a14ed41a7a5 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/tomcat/TomcatReactiveWebServerFactory.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/reactive/TomcatReactiveWebServerFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.reactive.tomcat;
+package org.springframework.boot.tomcat.reactive;
import java.io.File;
@@ -26,15 +26,15 @@
import org.apache.catalina.webresources.StandardRoot;
import org.apache.tomcat.util.scan.StandardJarScanFilter;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
+import org.springframework.boot.tomcat.DisableReferenceClearingContextCustomizer;
+import org.springframework.boot.tomcat.TomcatEmbeddedContext;
+import org.springframework.boot.tomcat.TomcatEmbeddedWebappClassLoader;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.TomcatWebServerFactory;
import org.springframework.boot.web.server.WebServer;
import org.springframework.boot.web.server.reactive.ConfigurableReactiveWebServerFactory;
import org.springframework.boot.web.server.reactive.ReactiveWebServerFactory;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
-import org.springframework.boot.web.server.tomcat.DisableReferenceClearingContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatEmbeddedContext;
-import org.springframework.boot.web.server.tomcat.TomcatEmbeddedWebappClassLoader;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServerFactory;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.http.server.reactive.TomcatHttpHandlerAdapter;
import org.springframework.util.ClassUtils;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/tomcat/package-info.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/reactive/package-info.java
similarity index 91%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/tomcat/package-info.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/reactive/package-info.java
index dce179a946c6..44fb617be12a 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/reactive/tomcat/package-info.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/reactive/package-info.java
@@ -17,4 +17,4 @@
/**
* Reactive web server implementation backed by Tomcat.
*/
-package org.springframework.boot.web.server.reactive.tomcat;
+package org.springframework.boot.tomcat.reactive;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/NestedJarResourceSet.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/NestedJarResourceSet.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/NestedJarResourceSet.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/NestedJarResourceSet.java
index 4027b75867c1..d30407961268 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/NestedJarResourceSet.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/NestedJarResourceSet.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.servlet.tomcat;
+package org.springframework.boot.tomcat.servlet;
import java.io.IOException;
import java.net.JarURLConnection;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/TldPatterns.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/TldPatterns.java
similarity index 99%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/TldPatterns.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/TldPatterns.java
index 494f2e1f5596..4c9f3d410f2e 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/TldPatterns.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/TldPatterns.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.servlet.tomcat;
+package org.springframework.boot.tomcat.servlet;
import java.util.Collections;
import java.util.LinkedHashSet;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/TomcatServletWebServerFactory.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/TomcatServletWebServerFactory.java
similarity index 97%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/TomcatServletWebServerFactory.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/TomcatServletWebServerFactory.java
index ad2bb45110de..e5e2ba3172a4 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/TomcatServletWebServerFactory.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/TomcatServletWebServerFactory.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.servlet.tomcat;
+package org.springframework.boot.tomcat.servlet;
import java.io.File;
import java.io.InputStream;
@@ -64,6 +64,14 @@
import org.apache.tomcat.util.http.Rfc6265CookieProcessor;
import org.apache.tomcat.util.scan.StandardJarScanFilter;
+import org.springframework.boot.tomcat.ConfigurableTomcatWebServerFactory;
+import org.springframework.boot.tomcat.DisableReferenceClearingContextCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatEmbeddedContext;
+import org.springframework.boot.tomcat.TomcatEmbeddedWebappClassLoader;
+import org.springframework.boot.tomcat.TomcatStarter;
+import org.springframework.boot.tomcat.TomcatWebServer;
+import org.springframework.boot.tomcat.TomcatWebServerFactory;
import org.springframework.boot.web.server.Cookie.SameSite;
import org.springframework.boot.web.server.ErrorPage;
import org.springframework.boot.web.server.MimeMappings;
@@ -75,14 +83,6 @@
import org.springframework.boot.web.server.servlet.ServletContextInitializer;
import org.springframework.boot.web.server.servlet.ServletContextInitializers;
import org.springframework.boot.web.server.servlet.ServletWebServerSettings;
-import org.springframework.boot.web.server.tomcat.ConfigurableTomcatWebServerFactory;
-import org.springframework.boot.web.server.tomcat.DisableReferenceClearingContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatEmbeddedContext;
-import org.springframework.boot.web.server.tomcat.TomcatEmbeddedWebappClassLoader;
-import org.springframework.boot.web.server.tomcat.TomcatStarter;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServerFactory;
import org.springframework.context.ResourceLoaderAware;
import org.springframework.core.io.ResourceLoader;
import org.springframework.util.Assert;
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/package-info.java b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/package-info.java
similarity index 91%
rename from spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/package-info.java
rename to spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/package-info.java
index d611e0a7b483..0a70dd5c5793 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/web/server/servlet/tomcat/package-info.java
+++ b/spring-boot-project/spring-boot-tomcat/src/main/java/org/springframework/boot/tomcat/servlet/package-info.java
@@ -17,4 +17,4 @@
/**
* Servlet web server implementation backed by Tomcat.
*/
-package org.springframework.boot.web.server.servlet.tomcat;
+package org.springframework.boot.tomcat.servlet;
diff --git a/spring-boot-project/spring-boot-tomcat/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot-tomcat/src/main/resources/META-INF/spring.factories
new file mode 100644
index 000000000000..cb023f0ee4cf
--- /dev/null
+++ b/spring-boot-project/spring-boot-tomcat/src/main/resources/META-INF/spring.factories
@@ -0,0 +1,3 @@
+# Failure Analyzers
+org.springframework.boot.diagnostics.FailureAnalyzer=\
+org.springframework.boot.tomcat.ConnectorStartFailureAnalyzer
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/CompressionConnectorCustomizerTests.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/CompressionConnectorCustomizerTests.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/CompressionConnectorCustomizerTests.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/CompressionConnectorCustomizerTests.java
index 200c554f61dd..86fe922e8d13 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/CompressionConnectorCustomizerTests.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/CompressionConnectorCustomizerTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import org.apache.catalina.connector.Connector;
import org.apache.coyote.http11.AbstractHttp11Protocol;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/SslConnectorCustomizerTests.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/SslConnectorCustomizerTests.java
similarity index 99%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/SslConnectorCustomizerTests.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/SslConnectorCustomizerTests.java
index 30732875a3dc..0b0e2b3a53c5 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/SslConnectorCustomizerTests.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/SslConnectorCustomizerTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.Collections;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/TomcatAccess.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/TomcatAccess.java
similarity index 95%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/TomcatAccess.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/TomcatAccess.java
index 8dba14ea7ba7..f09054d9bf5f 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/TomcatAccess.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/TomcatAccess.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.util.Map;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedWebappClassLoaderTests.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/TomcatEmbeddedWebappClassLoaderTests.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedWebappClassLoaderTests.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/TomcatEmbeddedWebappClassLoaderTests.java
index 8186e750d4e2..78c651c6c4b3 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/tomcat/TomcatEmbeddedWebappClassLoaderTests.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/TomcatEmbeddedWebappClassLoaderTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.tomcat;
+package org.springframework.boot.tomcat;
import java.io.File;
import java.io.FileOutputStream;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryTests.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/reactive/TomcatReactiveWebServerFactoryTests.java
similarity index 96%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/reactive/TomcatReactiveWebServerFactoryTests.java
index 3c33bfc90ae5..d1ecc065ba0e 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/reactive/tomcat/TomcatReactiveWebServerFactoryTests.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/reactive/TomcatReactiveWebServerFactoryTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.reactive.tomcat;
+package org.springframework.boot.tomcat.reactive;
import java.net.ConnectException;
import java.time.Duration;
@@ -38,16 +38,16 @@
import org.junit.jupiter.api.Test;
import org.mockito.InOrder;
+import org.springframework.boot.tomcat.TomcatAccess;
+import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.boot.web.server.PortInUseException;
import org.springframework.boot.web.server.Shutdown;
import org.springframework.boot.web.server.WebServerException;
import org.springframework.boot.web.server.reactive.AbstractReactiveWebServerFactoryTests;
import org.springframework.boot.web.server.reactive.ConfigurableReactiveWebServerFactory;
-import org.springframework.boot.web.server.tomcat.TomcatAccess;
-import org.springframework.boot.web.server.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatProtocolHandlerCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.http.server.reactive.HttpHandler;
import org.springframework.web.reactive.function.client.WebClient;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/tomcat/TldPatternsTests.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/servlet/TldPatternsTests.java
similarity index 97%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/tomcat/TldPatternsTests.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/servlet/TldPatternsTests.java
index 0720b5f2a267..892600303503 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/tomcat/TldPatternsTests.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/servlet/TldPatternsTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.servlet.tomcat;
+package org.springframework.boot.tomcat.servlet;
import java.io.IOException;
import java.io.InputStream;
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/tomcat/TomcatServletWebServerFactoryTests.java b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/servlet/TomcatServletWebServerFactoryTests.java
similarity index 98%
rename from spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/tomcat/TomcatServletWebServerFactoryTests.java
rename to spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/servlet/TomcatServletWebServerFactoryTests.java
index 110b6554e7fb..7dbab6b49d47 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/server/servlet/tomcat/TomcatServletWebServerFactoryTests.java
+++ b/spring-boot-project/spring-boot-tomcat/src/test/java/org/springframework/boot/tomcat/servlet/TomcatServletWebServerFactoryTests.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package org.springframework.boot.web.server.servlet.tomcat;
+package org.springframework.boot.tomcat.servlet;
import java.io.File;
import java.io.IOException;
@@ -82,19 +82,19 @@
import org.springframework.boot.ssl.DefaultSslBundleRegistry;
import org.springframework.boot.testsupport.classpath.resources.WithPackageResources;
import org.springframework.boot.testsupport.system.CapturedOutput;
+import org.springframework.boot.tomcat.ConnectorStartFailedException;
+import org.springframework.boot.tomcat.TomcatAccess;
+import org.springframework.boot.tomcat.TomcatConnectorCustomizer;
+import org.springframework.boot.tomcat.TomcatContextCustomizer;
+import org.springframework.boot.tomcat.TomcatEmbeddedContext;
+import org.springframework.boot.tomcat.TomcatProtocolHandlerCustomizer;
+import org.springframework.boot.tomcat.TomcatWebServer;
import org.springframework.boot.web.server.PortInUseException;
import org.springframework.boot.web.server.Shutdown;
import org.springframework.boot.web.server.Ssl;
import org.springframework.boot.web.server.WebServerException;
import org.springframework.boot.web.server.servlet.AbstractServletWebServerFactoryTests;
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
-import org.springframework.boot.web.server.tomcat.ConnectorStartFailedException;
-import org.springframework.boot.web.server.tomcat.TomcatAccess;
-import org.springframework.boot.web.server.tomcat.TomcatConnectorCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatContextCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatEmbeddedContext;
-import org.springframework.boot.web.server.tomcat.TomcatProtocolHandlerCustomizer;
-import org.springframework.boot.web.server.tomcat.TomcatWebServer;
import org.springframework.core.io.ByteArrayResource;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.support.PropertiesLoaderUtils;
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/1.crt b/spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/1.crt
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/1.crt
rename to spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/1.crt
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/1.key b/spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/1.key
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/1.key
rename to spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/1.key
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/2.crt b/spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/2.crt
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/2.crt
rename to spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/2.crt
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/2.key b/spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/2.key
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/2.key
rename to spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/2.key
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/test.jks b/spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/tomcat/test.jks
rename to spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/servlet/test.jks
diff --git a/spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/undertow/test.jks b/spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/test.jks
similarity index 100%
rename from spring-boot-project/spring-boot/src/test/resources/org/springframework/boot/web/server/servlet/undertow/test.jks
rename to spring-boot-project/spring-boot-tomcat/src/test/resources/org/springframework/boot/tomcat/test.jks
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/ssl/SslSource.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/ssl/SslSource.java
index be77d8250827..f70dcce8c13a 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/ssl/SslSource.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/docker/ssl/SslSource.java
@@ -31,7 +31,7 @@ final class SslSource {
.of("src/main/java/org/springframework/boot/buildpack/platform/docker/ssl");
private static final Path SPRINGBOOT_LOCATION = Path
- .of("../../spring-boot/src/main/java/org/springframework/boot/ssl/pem");
+ .of("../../spring-boot-core/src/main/java/org/springframework/boot/ssl/pem");
private SslSource() {
}
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-cli/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-cli/build.gradle
index 81df1684ca72..810f5b69bd79 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-cli/build.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-cli/build.gradle
@@ -19,7 +19,7 @@ configurations {
}
dependencies {
- compileOnlyProject(project(":spring-boot-project:spring-boot"))
+ compileOnlyProject(project(":spring-boot-project:spring-boot-all"))
dependenciesBom(project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "effectiveBom"))
@@ -39,7 +39,7 @@ dependencies {
loader(project(":spring-boot-project:spring-boot-tools:spring-boot-loader"))
- testImplementation(project(":spring-boot-project:spring-boot"))
+ testImplementation(project(":spring-boot-project:spring-boot-all"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testImplementation(project(":spring-boot-project:spring-boot-test"))
testImplementation("org.assertj:assertj-core")
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle
index 4819bf526e2e..32e6fcb01931 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle
@@ -54,7 +54,6 @@ dependencies {
testImplementation("org.assertj:assertj-core")
testImplementation("org.graalvm.buildtools:native-gradle-plugin")
testImplementation("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion")
- testImplementation("org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlinVersion")
testImplementation("org.jetbrains.kotlin:kotlin-compiler-runner:$kotlinVersion")
testImplementation("org.jetbrains.kotlin:kotlin-daemon-client:$kotlinVersion")
testImplementation("org.junit.jupiter:junit-jupiter")
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/KotlinPluginAction.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/KotlinPluginAction.java
index afb5eefac115..30ce7061e2dd 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/KotlinPluginAction.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/KotlinPluginAction.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2023 the original author or authors.
+ * Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -49,7 +49,7 @@ private String getKotlinVersion(Project project) {
private void enableJavaParametersOption(Project project) {
project.getTasks()
.withType(KotlinCompile.class)
- .configureEach((compile) -> compile.getKotlinOptions().setJavaParameters(true));
+ .configureEach((compile) -> compile.getCompilerOptions().getJavaParameters().set(true));
}
@Override
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests.java
index 8afa6036f967..4ed6e4b44a47 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2024 the original author or authors.
+ * Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -83,7 +83,7 @@ void taskConfigurationIsAvoided() throws IOException {
configured.add(line.substring("Configuring :".length()));
}
}
- assertThat(configured).containsExactlyInAnyOrder("help", "compileJava", "clean");
+ assertThat(configured).containsExactlyInAnyOrder("help", "clean");
}
}
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/testkit/PluginClasspathGradleBuild.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/testkit/PluginClasspathGradleBuild.java
index 14d1700b433a..2fc9832144c6 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/testkit/PluginClasspathGradleBuild.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/testkit/PluginClasspathGradleBuild.java
@@ -18,6 +18,7 @@
import java.io.File;
import java.io.IOException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -33,9 +34,12 @@
import org.apache.hc.core5.http.HttpRequest;
import org.apache.hc.core5.http2.HttpVersionPolicy;
import org.gradle.testkit.runner.GradleRunner;
+import org.gradle.util.GradleVersion;
+import org.jetbrains.kotlin.buildtools.api.jvm.ClassSnapshotGranularity;
import org.jetbrains.kotlin.gradle.model.KotlinProject;
import org.jetbrains.kotlin.gradle.plugin.KotlinCompilerPluginSupportPlugin;
import org.jetbrains.kotlin.gradle.plugin.KotlinPlatformJvmPlugin;
+import org.jetbrains.kotlin.konan.target.HostManager;
import org.jetbrains.kotlin.project.model.LanguageSettings;
import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion;
import org.tomlj.Toml;
@@ -55,6 +59,8 @@
*/
public class PluginClasspathGradleBuild extends GradleBuild {
+ private static final GradleVersion GRADLE_VERSION_8_10 = GradleVersion.version("8.10");
+
public PluginClasspathGradleBuild() {
super();
}
@@ -69,6 +75,15 @@ public GradleRunner prepareRunner(String... arguments) throws IOException {
}
private List pluginClasspath() {
+ List pluginClasspath = new ArrayList<>(basePluginClasspath());
+ if (this.getGradleVersion() == null
+ || GradleVersion.version(this.getGradleVersion()).compareTo(GRADLE_VERSION_8_10) > 0) {
+ pluginClasspath.addAll(classpathAdditionsForGradleVersionsWithEmbeddedKotlin2());
+ }
+ return pluginClasspath;
+ }
+
+ private List basePluginClasspath() {
return Arrays.asList(new File("bin/main"), new File("build/classes/java/main"),
new File("build/resources/main"), new File(pathOfJarContaining(LaunchScript.class)),
new File(pathOfJarContaining(ClassVisitor.class)),
@@ -94,6 +109,12 @@ private List pluginClasspath() {
new File(pathOfJarContaining("org.graalvm.buildtools.utils.SharedConstants")));
}
+ private List classpathAdditionsForGradleVersionsWithEmbeddedKotlin2() {
+ return Arrays.asList(new File(pathOfJarContaining(ClassSnapshotGranularity.class)),
+ new File(pathOfJarContaining("org.jetbrains.kotlin.build.report.metrics.GradleBuildTime")),
+ new File(pathOfJarContaining(HostManager.class)));
+ }
+
private String pathOfJarContaining(String className) {
try {
return pathOfJarContaining(Class.forName(className));
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksCanOverrideDefaultJavaParametersFlag.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksCanOverrideDefaultJavaParametersFlag.gradle
index 625f97ccd43b..54676cd9a4a3 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksCanOverrideDefaultJavaParametersFlag.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksCanOverrideDefaultJavaParametersFlag.gradle
@@ -4,16 +4,16 @@ plugins {
apply plugin: 'org.jetbrains.kotlin.jvm'
-import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
tasks.withType(KotlinCompile) {
- kotlinOptions.javaParameters = false
+ compilerOptions.javaParameters = false
}
task('kotlinCompileTasksJavaParameters') {
doFirst {
tasks.withType(KotlinCompile) {
- println "${name} java parameters: ${kotlinOptions.javaParameters}"
+ println "${name} java parameters: ${compilerOptions.javaParameters.get()}"
}
}
}
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksUseJavaParametersFlagByDefault.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksUseJavaParametersFlagByDefault.gradle
index f5be02c186bd..1058b326845d 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksUseJavaParametersFlagByDefault.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/resources/org/springframework/boot/gradle/plugin/KotlinPluginActionIntegrationTests-kotlinCompileTasksUseJavaParametersFlagByDefault.gradle
@@ -4,12 +4,12 @@ plugins {
apply plugin: 'org.jetbrains.kotlin.jvm'
-import org.jetbrains.kotlin.gradle.dsl.KotlinCompile
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
task('kotlinCompileTasksJavaParameters') {
doFirst {
tasks.withType(KotlinCompile) {
- println "${name} java parameters: ${kotlinOptions.javaParameters}"
+ println "${name} java parameters: ${compilerOptions.javaParameters.get()}"
}
}
}
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle
index 83ba59974aaf..c0448a5242ef 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle
@@ -75,7 +75,7 @@ dependencies {
intTestImplementation("org.assertj:assertj-core")
intTestImplementation("org.junit.jupiter:junit-jupiter")
- mavenRepository(project(path: ":spring-boot-project:spring-boot", configuration: "mavenRepository"))
+ mavenRepository(project(path: ":spring-boot-project:spring-boot-all", configuration: "mavenRepository"))
mavenRepository(project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "mavenRepository"))
mavenRepository(project(path: ":spring-boot-project:spring-boot-test", configuration: "mavenRepository"))
mavenRepository(project(path: ":spring-boot-project:spring-boot-devtools", configuration: "mavenRepository"))
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/aot-module-info/src/main/java/module-info.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/aot-module-info/src/main/java/module-info.java
index c3640e6fa0cc..c7050706a960 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/aot-module-info/src/main/java/module-info.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/projects/aot-module-info/src/main/java/module-info.java
@@ -1,4 +1,5 @@
module sampleApp {
- requires spring.context;
requires spring.boot;
+ requires spring.boot.core;
+ requires spring.context;
}
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-properties-migrator/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-properties-migrator/build.gradle
index 8393d4a3a40a..44a6a1fa4d2a 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-properties-migrator/build.gradle
+++ b/spring-boot-project/spring-boot-tools/spring-boot-properties-migrator/build.gradle
@@ -6,7 +6,7 @@ plugins {
description = "Spring Boot Properties Migrator"
dependencies {
- implementation(project(":spring-boot-project:spring-boot"))
+ implementation(project(":spring-boot-project:spring-boot-all"))
implementation(project(":spring-boot-project:spring-boot-tools:spring-boot-configuration-metadata"))
testImplementation(project(":spring-boot-project:spring-boot-test"))
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/Resources.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/Resources.java
index 331b2b640590..bb3bb289f9e9 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/Resources.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/Resources.java
@@ -18,19 +18,24 @@
import java.io.IOException;
import java.io.UncheckedIOException;
+import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+import java.nio.file.FileSystem;
+import java.nio.file.FileSystemNotFoundException;
+import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Arrays;
import java.util.Collections;
-import java.util.Enumeration;
import java.util.HashSet;
+import java.util.List;
import java.util.Set;
import org.springframework.util.Assert;
import org.springframework.util.FileSystemUtils;
+import org.springframework.util.function.ThrowingConsumer;
/**
* A collection of resources.
@@ -45,27 +50,42 @@ class Resources {
this.root = root;
}
- Resources addPackage(Package root, String[] resourceNames) {
+ Resources addPackage(String packageName, String[] resourceNames) {
Set unmatchedNames = new HashSet<>(Arrays.asList(resourceNames));
+ withPathsForPackage(packageName, (packagePath) -> {
+ for (String resourceName : resourceNames) {
+ Path resource = packagePath.resolve(resourceName);
+ if (Files.exists(resource) && !Files.isDirectory(resource)) {
+ Path target = this.root.resolve(resourceName);
+ Path targetDirectory = target.getParent();
+ if (!Files.isDirectory(targetDirectory)) {
+ Files.createDirectories(targetDirectory);
+ }
+ Files.copy(resource, target);
+ unmatchedNames.remove(resourceName);
+ }
+ }
+ });
+ Assert.isTrue(unmatchedNames.isEmpty(),
+ "Package '" + packageName + "' did not contain resources: " + unmatchedNames);
+ return this;
+ }
+
+ private void withPathsForPackage(String packageName, ThrowingConsumer consumer) {
try {
- Enumeration sources = getClass().getClassLoader().getResources(root.getName().replace(".", "/"));
- for (URL source : Collections.list(sources)) {
- Path sourceRoot = Paths.get(source.toURI());
- for (String resourceName : resourceNames) {
- Path resource = sourceRoot.resolve(resourceName);
- if (Files.isRegularFile(resource)) {
- Path target = this.root.resolve(resourceName);
- Path targetDirectory = target.getParent();
- if (!Files.isDirectory(targetDirectory)) {
- Files.createDirectories(targetDirectory);
- }
- Files.copy(resource, target);
- unmatchedNames.remove(resourceName);
+ List sources = Collections
+ .list(getClass().getClassLoader().getResources(packageName.replace(".", "/")));
+ for (URL source : sources) {
+ URI sourceUri = source.toURI();
+ try {
+ consumer.accept(Paths.get(sourceUri));
+ }
+ catch (FileSystemNotFoundException ex) {
+ try (FileSystem fileSystem = FileSystems.newFileSystem(sourceUri, Collections.emptyMap())) {
+ consumer.accept(Paths.get(sourceUri));
}
}
}
- Assert.isTrue(unmatchedNames.isEmpty(),
- "Package '" + root.getName() + "' did not contain resources: " + unmatchedNames);
}
catch (IOException ex) {
throw new UncheckedIOException(ex);
@@ -73,7 +93,6 @@ Resources addPackage(Package root, String[] resourceNames) {
catch (URISyntaxException ex) {
throw new RuntimeException(ex);
}
- return this;
}
Resources addResource(String name, String content) {
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesExtension.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesExtension.java
index 72b75d24e360..1078a9350d67 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesExtension.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/classpath/resources/ResourcesExtension.java
@@ -66,7 +66,7 @@ public void beforeEach(ExtensionContext context) throws Exception {
resourcesOf(testMethod).forEach((resource) -> resources.addResource(resource.name(), resource.content()));
resourceDirectoriesOf(testMethod).forEach((directory) -> resources.addDirectory(directory.value()));
packageResourcesOf(testMethod).forEach((withPackageResources) -> resources
- .addPackage(testMethod.getDeclaringClass().getPackage(), withPackageResources.value()));
+ .addPackage(testMethod.getDeclaringClass().getPackage().getName(), withPackageResources.value()));
ResourcesClassLoader classLoader = new ResourcesClassLoader(context.getRequiredTestClass().getClassLoader(),
resources);
store.put(TCCL_KEY, Thread.currentThread().getContextClassLoader());
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/web/servlet/MockServletWebServer.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/web/servlet/MockServletWebServer.java
index 9f5886ab852a..11587d6622bd 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/web/servlet/MockServletWebServer.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/main/java/org/springframework/boot/testsupport/web/servlet/MockServletWebServer.java
@@ -1,5 +1,5 @@
/*
- * Copyright 2012-2023 the original author or authors.
+ * Copyright 2012-2025 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -57,6 +57,10 @@ public abstract class MockServletWebServer {
private final List registeredFilters = new ArrayList<>();
+ private final Map filterRegistrations = new HashMap<>();
+
+ private final Map servletRegistrations = new HashMap<>();
+
private final int port;
public MockServletWebServer(Initializer[] initializers, int port) {
@@ -65,17 +69,20 @@ public MockServletWebServer(Initializer[] initializers, int port) {
initialize();
}
+ @SuppressWarnings("unchecked")
private void initialize() {
try {
this.servletContext = mock(ServletContext.class);
lenient().doAnswer((invocation) -> {
RegisteredServlet registeredServlet = new RegisteredServlet(invocation.getArgument(1));
MockServletWebServer.this.registeredServlets.add(registeredServlet);
+ this.servletRegistrations.put(invocation.getArgument(0), registeredServlet.getRegistration());
return registeredServlet.getRegistration();
}).when(this.servletContext).addServlet(anyString(), any(Servlet.class));
lenient().doAnswer((invocation) -> {
RegisteredFilter registeredFilter = new RegisteredFilter(invocation.getArgument(1));
MockServletWebServer.this.registeredFilters.add(registeredFilter);
+ this.filterRegistrations.put(invocation.getArgument(0), registeredFilter.getRegistration());
return registeredFilter.getRegistration();
}).when(this.servletContext).addFilter(anyString(), any(Filter.class));
final SessionCookieConfig sessionCookieConfig = new MockSessionCookieConfig();
@@ -91,6 +98,10 @@ private void initialize() {
.when(this.servletContext)
.getInitParameter(anyString());
given(this.servletContext.getAttributeNames()).willReturn(Collections.emptyEnumeration());
+ lenient().when((Map) this.servletContext.getFilterRegistrations())
+ .thenReturn(this.filterRegistrations);
+ lenient().when((Map) this.servletContext.getServletRegistrations())
+ .thenReturn(this.servletRegistrations);
for (Initializer initializer : this.initializers) {
initializer.onStartup(this.servletContext);
}
@@ -103,6 +114,8 @@ private void initialize() {
public void stop() {
this.servletContext = null;
this.registeredServlets.clear();
+ this.filterRegistrations.clear();
+ this.registeredFilters.clear();
}
public ServletContext getServletContext() {
diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/test/java/org/springframework/boot/testsupport/classpath/resources/ResourcesTests.java b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/test/java/org/springframework/boot/testsupport/classpath/resources/ResourcesTests.java
index c91d508c68e0..f93be99aef47 100644
--- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/test/java/org/springframework/boot/testsupport/classpath/resources/ResourcesTests.java
+++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/src/test/java/org/springframework/boot/testsupport/classpath/resources/ResourcesTests.java
@@ -62,7 +62,7 @@ void whenAddResourceAndResourceAlreadyExistsThenResourcesIsOverwritten() {
@Test
void whenAddPackageThenNamedResourcesFromPackageAreCreated() {
- new Resources(this.root).addPackage(getClass().getPackage(),
+ new Resources(this.root).addPackage(getClass().getPackage().getName(),
new String[] { "resource-1.txt", "sub/resource-3.txt" });
assertThat(this.root.resolve("resource-1.txt")).hasContent("one");
assertThat(this.root.resolve("resource-2.txt")).doesNotExist();
@@ -81,7 +81,7 @@ void whenAddResourceAndDeleteThenResourceDoesNotExist() {
@Test
void whenAddPackageAndDeleteThenResourcesDoNotExist() {
Resources resources = new Resources(this.root);
- resources.addPackage(getClass().getPackage(),
+ resources.addPackage(getClass().getPackage().getName(),
new String[] { "resource-1.txt", "resource-2.txt", "sub/resource-3.txt" });
assertThat(this.root.resolve("resource-1.txt")).hasContent("one");
assertThat(this.root.resolve("resource-2.txt")).hasContent("two");
diff --git a/spring-boot-project/spring-boot/build.gradle b/spring-boot-project/spring-boot/build.gradle
index 8a3c4e32743d..7d9793202541 100644
--- a/spring-boot-project/spring-boot/build.gradle
+++ b/spring-boot-project/spring-boot/build.gradle
@@ -1,6 +1,7 @@
plugins {
id "dev.adamko.dokkatoo-html"
id "java-library"
+ id 'java-test-fixtures'
id "org.jetbrains.kotlin.jvm"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
@@ -9,12 +10,6 @@ plugins {
description = "Spring Boot"
-def tomcatConfigProperties = layout.buildDirectory.dir("tomcat-config-properties")
-
-configurations {
- tomcatDistribution
-}
-
dependencies {
annotationProcessor("org.apache.logging.log4j:log4j-core")
@@ -22,138 +17,59 @@ dependencies {
api("org.springframework:spring-context")
optional("ch.qos.logback:logback-classic")
- optional("com.clickhouse:clickhouse-jdbc")
optional("com.fasterxml.jackson.core:jackson-databind")
- optional("com.h2database:h2")
optional("com.google.code.gson:gson")
- optional("com.mchange:c3p0")
- optional("com.oracle.database.jdbc:ucp11")
- optional("com.oracle.database.jdbc:ojdbc11")
- optional("com.samskivert:jmustache")
- optional("com.zaxxer:HikariCP")
- optional("io.netty:netty-tcnative-boringssl-static")
- optional("io.projectreactor:reactor-tools")
- optional("io.projectreactor.netty:reactor-netty-http")
- optional("io.r2dbc:r2dbc-pool")
- optional("io.rsocket:rsocket-core")
- optional("io.rsocket:rsocket-transport-netty")
- optional("io.undertow:undertow-servlet")
- optional("jakarta.jms:jakarta.jms-api")
- optional("jakarta.persistence:jakarta.persistence-api")
optional("jakarta.servlet:jakarta.servlet-api")
- optional("jakarta.transaction:jakarta.transaction-api")
- optional("junit:junit")
- optional("org.apache.commons:commons-dbcp2") {
- exclude(group: "commons-logging", module: "commons-logging")
- }
- optional("org.apache.httpcomponents.client5:httpclient5")
+ optional("jakarta.validation:jakarta.validation-api")
+ optional("org.apache.groovy:groovy")
optional("org.apache.logging.log4j:log4j-api")
optional("org.apache.logging.log4j:log4j-core")
optional("org.apache.logging.log4j:log4j-jul")
- optional("org.apache.tomcat.embed:tomcat-embed-core")
- optional("org.apache.tomcat.embed:tomcat-embed-jasper")
- optional("org.apache.tomcat:tomcat-jdbc")
- optional("org.assertj:assertj-core")
- optional("org.apache.groovy:groovy")
- optional("org.apache.groovy:groovy-xml")
optional("org.crac:crac")
- optional("org.eclipse.jetty:jetty-alpn-conscrypt-server")
- optional("org.eclipse.jetty:jetty-client")
- optional("org.eclipse.jetty:jetty-util")
- optional("org.eclipse.jetty.ee10:jetty-ee10-servlets")
- optional("org.eclipse.jetty.ee10:jetty-ee10-webapp")
- optional("org.eclipse.jetty.http2:jetty-http2-server")
- optional("org.flywaydb:flyway-core")
- optional("org.hamcrest:hamcrest-library")
- optional("org.hibernate.orm:hibernate-core")
- optional("org.hibernate.validator:hibernate-validator")
- optional("org.jooq:jooq") {
- exclude(group: "javax.xml.bind", module: "jaxb-api")
- }
- optional("org.liquibase:liquibase-core") {
- exclude(group: "javax.xml.bind", module: "jaxb-api")
- }
- optional("org.messaginghub:pooled-jms") {
- exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec"
- }
- optional("org.postgresql:postgresql")
+ optional("org.jetbrains.kotlin:kotlin-reflect")
+ optional("org.jetbrains.kotlin:kotlin-stdlib")
optional("org.slf4j:jul-to-slf4j")
- optional("org.slf4j:slf4j-api")
- optional("org.springframework:spring-messaging")
- optional("org.springframework:spring-orm")
- optional("org.springframework:spring-jms")
- optional("org.springframework:spring-oxm")
- optional("org.springframework:spring-r2dbc")
optional("org.springframework:spring-test")
- optional("org.springframework:spring-web")
optional("org.springframework:spring-webflux")
optional("org.springframework:spring-webmvc")
- optional("org.springframework.security:spring-security-web")
- optional("org.springframework.ws:spring-ws-core") {
- exclude group: "com.sun.mail", module: "jakarta.mail"
- exclude group: "jakarta.platform", module: "jakarta.jakartaee-api"
- exclude group: "org.eclipse.jetty", module: "jetty-server"
- exclude group: "org.eclipse.jetty", module: "jetty-servlet"
- exclude group: "jakarta.mail", module: "jakarta.mail-api"
- }
- optional("org.vibur:vibur-dbcp")
optional("org.yaml:snakeyaml")
- optional("org.jetbrains.kotlin:kotlin-reflect")
- optional("org.jetbrains.kotlin:kotlin-stdlib")
- optional("software.amazon.jdbc:aws-advanced-jdbc-wrapper") {
- exclude(group: "commons-logging", module: "commons-logging")
- }
+
+ testFixturesImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
+ testFixturesImplementation("io.projectreactor:reactor-test")
+ testFixturesImplementation("io.projectreactor.netty:reactor-netty-http")
+ testFixturesImplementation("org.apache.httpcomponents.client5:httpclient5")
+ testFixturesImplementation("org.apache.tomcat.embed:tomcat-embed-jasper")
+ testFixturesImplementation("org.assertj:assertj-core")
+ testFixturesImplementation("org.awaitility:awaitility")
+ testFixturesImplementation("org.eclipse.jetty.http2:jetty-http2-client")
+ testFixturesImplementation("org.eclipse.jetty.http2:jetty-http2-client-transport")
+ testFixturesImplementation("org.junit.jupiter:junit-jupiter")
+ testFixturesImplementation("org.mockito:mockito-core")
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
- testImplementation("org.springframework:spring-core-test")
- testImplementation("com.ibm.db2:jcc")
testImplementation("com.jayway.jsonpath:json-path")
- testImplementation("com.microsoft.sqlserver:mssql-jdbc")
- testImplementation("com.mysql:mysql-connector-j")
- testImplementation("com.sun.xml.messaging.saaj:saaj-impl")
testImplementation("io.projectreactor:reactor-test")
- testImplementation("io.r2dbc:r2dbc-h2")
+ testImplementation("io.projectreactor.netty:reactor-netty-http")
+ testImplementation("jakarta.annotation:jakarta.annotation-api")
testImplementation("jakarta.inject:jakarta.inject-api")
- testImplementation("jakarta.xml.ws:jakarta.xml.ws-api")
- testImplementation("net.sourceforge.jtds:jtds")
- testImplementation("org.apache.derby:derby")
- testImplementation("org.apache.derby:derbytools")
+ testImplementation("org.apache.groovy:groovy-xml")
+ testImplementation("org.apache.httpcomponents.client5:httpclient5")
+ testImplementation("org.apache.tomcat:tomcat-jdbc")
+ testImplementation("org.apache.tomcat.embed:tomcat-embed-core")
+ testImplementation("org.apache.tomcat.embed:tomcat-embed-jasper")
+ testImplementation("org.assertj:assertj-core")
testImplementation("org.awaitility:awaitility")
testImplementation("org.codehaus.janino:janino")
testImplementation("org.eclipse.jetty:jetty-client")
testImplementation("org.eclipse.jetty.http2:jetty-http2-client")
testImplementation("org.eclipse.jetty.http2:jetty-http2-client-transport")
- testImplementation("org.firebirdsql.jdbc:jaybird") {
- exclude group: "javax.resource", module: "connector-api"
- }
- testImplementation("org.hsqldb:hsqldb")
+ testImplementation("org.hibernate.validator:hibernate-validator")
+ testImplementation("org.jboss.logging:jboss-logging")
testImplementation("org.junit.jupiter:junit-jupiter")
- testImplementation("org.mariadb.jdbc:mariadb-java-client") {
- exclude group: "org.slf4j", module: "jcl-over-slf4j"
- }
testImplementation("org.mockito:mockito-core")
testImplementation("org.mockito:mockito-junit-jupiter")
- testImplementation("org.springframework:spring-context-support")
testImplementation("org.springframework:spring-core-test")
- testImplementation("org.springframework.data:spring-data-redis")
testImplementation("org.springframework.data:spring-data-r2dbc")
- testImplementation("org.xerial:sqlite-jdbc")
-
- testRuntimeOnly("org.testcontainers:jdbc") {
- exclude group: "javax.annotation", module: "javax.annotation-api"
- exclude group: "javax.xml.bind", module: "jaxb-api"
- }
-
- tomcatDistribution("org.apache.tomcat:tomcat:${tomcatVersion}@zip")
-}
-
-task extractTomcatConfigProperties(type: Sync) {
- destinationDir = file(tomcatConfigProperties)
- from {
- zipTree(configurations.tomcatDistribution.incoming.files.singleFile).matching {
- include '**/conf/catalina.properties'
- }.singleFile
- }
}
def syncJavaTemplates = tasks.register("syncJavaTemplates", Sync) {
@@ -184,11 +100,4 @@ sourceSets {
srcDirs syncJavaTemplates
}
}
- test {
- output.dir(tomcatConfigProperties, builtBy: "extractTomcatConfigProperties")
- }
-}
-
-test {
- jvmArgs += "--add-opens=java.base/java.net=ALL-UNNAMED"
}
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLogFormatter.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLogFormatter.java
index 897093d2c3ad..437761f1f52c 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLogFormatter.java
+++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLogFormatter.java
@@ -18,8 +18,6 @@
import java.nio.charset.Charset;
-import ch.qos.logback.classic.pattern.ThrowableProxyConverter;
-
import org.springframework.boot.logging.StackTracePrinter;
import org.springframework.core.env.Environment;
@@ -35,7 +33,7 @@
* When using Logback, implementing classes can also use the following parameter types in
* the constructor:
*
- * - {@link ThrowableProxyConverter}
+ * - {@code ch.qos.logback.classic.pattern.ThrowableProxyConverter}
*
*
* @param the log event type
diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLoggingJsonMembersCustomizer.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLoggingJsonMembersCustomizer.java
index d27a73af82d4..d437faa5b5af 100644
--- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLoggingJsonMembersCustomizer.java
+++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/logging/structured/StructuredLoggingJsonMembersCustomizer.java
@@ -16,8 +16,6 @@
package org.springframework.boot.logging.structured;
-import ch.qos.logback.classic.pattern.ThrowableProxyConverter;
-
import org.springframework.boot.json.JsonWriter;
import org.springframework.boot.json.JsonWriter.Members;
import org.springframework.core.env.Environment;
@@ -38,7 +36,7 @@
* When using Logback, implementing classes can also use the following parameter types in
* the constructor:
*
- * - {@link ThrowableProxyConverter}
+ * - {@code ch.qos.logback.classic.pattern.ThrowableProxyConverter}
*
*
* @param the type being written
diff --git a/spring-boot-project/spring-boot/src/main/resources/META-INF/spring.factories b/spring-boot-project/spring-boot/src/main/resources/META-INF/spring.factories
index 8725e7009879..8e87d3ce30d6 100644
--- a/spring-boot-project/spring-boot/src/main/resources/META-INF/spring.factories
+++ b/spring-boot-project/spring-boot/src/main/resources/META-INF/spring.factories
@@ -39,7 +39,6 @@ org.springframework.context.ApplicationContextInitializer=\
org.springframework.boot.context.ConfigurationWarningsApplicationContextInitializer,\
org.springframework.boot.context.ContextIdApplicationContextInitializer,\
org.springframework.boot.io.ProtocolResolverApplicationContextInitializer,\
-org.springframework.boot.rsocket.context.RSocketPortInfoApplicationContextInitializer,\
org.springframework.boot.web.context.ServerPortInfoApplicationContextInitializer
# Application Listeners
@@ -57,8 +56,7 @@ org.springframework.boot.cloud.CloudFoundryVcapEnvironmentPostProcessor,\
org.springframework.boot.context.config.ConfigDataEnvironmentPostProcessor,\
org.springframework.boot.env.RandomValuePropertySourceEnvironmentPostProcessor,\
org.springframework.boot.env.SpringApplicationJsonEnvironmentPostProcessor,\
-org.springframework.boot.env.SystemEnvironmentPropertySourceEnvironmentPostProcessor,\
-org.springframework.boot.reactor.ReactorEnvironmentPostProcessor
+org.springframework.boot.env.SystemEnvironmentPropertySourceEnvironmentPostProcessor
# Failure Analyzers
org.springframework.boot.diagnostics.FailureAnalyzer=\
@@ -81,29 +79,12 @@ org.springframework.boot.diagnostics.analyzer.PatternParseFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.PortInUseFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.UnboundConfigurationPropertyFailureAnalyzer,\
org.springframework.boot.diagnostics.analyzer.ValidationExceptionFailureAnalyzer,\
-org.springframework.boot.liquibase.LiquibaseChangelogMissingFailureAnalyzer,\
-org.springframework.boot.web.context.MissingWebServerFactoryBeanFailureAnalyzer,\
-org.springframework.boot.web.server.tomcat.ConnectorStartFailureAnalyzer
+org.springframework.boot.web.context.MissingWebServerFactoryBeanFailureAnalyzer
# Failure Analysis Reporters
org.springframework.boot.diagnostics.FailureAnalysisReporter=\
org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter
-# Database Initializer Detectors
-org.springframework.boot.sql.init.dependency.DatabaseInitializerDetector=\
-org.springframework.boot.flyway.FlywayDatabaseInitializerDetector,\
-org.springframework.boot.jdbc.init.DataSourceScriptDatabaseInitializerDetector,\
-org.springframework.boot.liquibase.LiquibaseDatabaseInitializerDetector,\
-org.springframework.boot.orm.jpa.JpaDatabaseInitializerDetector,\
-org.springframework.boot.r2dbc.init.R2dbcScriptDatabaseInitializerDetector
-
-# Depends On Database Initialization Detectors
-org.springframework.boot.sql.init.dependency.DependsOnDatabaseInitializationDetector=\
-org.springframework.boot.sql.init.dependency.AnnotationDependsOnDatabaseInitializationDetector,\
-org.springframework.boot.jdbc.SpringJdbcDependsOnDatabaseInitializationDetector,\
-org.springframework.boot.jooq.JooqDependsOnDatabaseInitializationDetector,\
-org.springframework.boot.orm.jpa.JpaDependsOnDatabaseInitializationDetector
-
# Resource Locator Protocol Resolvers
org.springframework.core.io.ProtocolResolver=\
org.springframework.boot.io.Base64ProtocolResolver
diff --git a/spring-boot-project/spring-boot/src/main/resources/META-INF/spring/aot.factories b/spring-boot-project/spring-boot/src/main/resources/META-INF/spring/aot.factories
index ddf1441e6d98..b0b9f8610cea 100644
--- a/spring-boot-project/spring-boot/src/main/resources/META-INF/spring/aot.factories
+++ b/spring-boot-project/spring-boot/src/main/resources/META-INF/spring/aot.factories
@@ -5,23 +5,16 @@ org.springframework.boot.WebApplicationType.WebApplicationTypeRuntimeHints,\
org.springframework.boot.context.config.ConfigDataLocationRuntimeHints,\
org.springframework.boot.context.config.ConfigDataPropertiesRuntimeHints,\
org.springframework.boot.env.PropertySourceRuntimeHints,\
-org.springframework.boot.http.client.ClientHttpRequestFactoryRuntimeHints,\
-org.springframework.boot.jdbc.DataSourceBuilderRuntimeHints,\
org.springframework.boot.json.JacksonRuntimeHints,\
-org.springframework.boot.logging.java.JavaLoggingSystemRuntimeHints,\
-org.springframework.boot.logging.logback.LogbackRuntimeHints,\
org.springframework.boot.logging.structured.ElasticCommonSchemaProperties.ElasticCommonSchemaPropertiesRuntimeHints,\
org.springframework.boot.logging.structured.GraylogExtendedLogFormatProperties.GraylogExtendedLogFormatPropertiesRuntimeHints,\
org.springframework.boot.logging.structured.StructuredLoggingJsonProperties.StructuredLoggingJsonPropertiesRuntimeHints,\
-org.springframework.boot.web.server.undertow.UndertowWebServer.UndertowWebServerRuntimeHints,\
org.springframework.boot.web.server.MimeMappings.MimeMappingsRuntimeHints
org.springframework.beans.factory.aot.BeanFactoryInitializationAotProcessor=\
org.springframework.boot.context.properties.ConfigurationPropertiesBeanFactoryInitializationAotProcessor,\
org.springframework.boot.env.EnvironmentPostProcessorApplicationListener.EnvironmentBeanFactoryInitializationAotProcessor,\
-org.springframework.boot.jackson.JsonComponentModule.JsonComponentBeanFactoryInitializationAotProcessor,\
org.springframework.boot.logging.structured.StructuredLoggingJsonPropertiesBeanFactoryInitializationAotProcessor
org.springframework.beans.factory.aot.BeanRegistrationAotProcessor=\
-org.springframework.boot.context.properties.ConfigurationPropertiesBeanRegistrationAotProcessor,\
-org.springframework.boot.jackson.JsonMixinModuleEntriesBeanRegistrationAotProcessor
+org.springframework.boot.context.properties.ConfigurationPropertiesBeanRegistrationAotProcessor
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java
index 1f6aeee1b05d..b256e0110f7a 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java
+++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/SpringApplicationTests.java
@@ -78,8 +78,8 @@
import org.springframework.boot.web.reactive.context.AnnotationConfigReactiveWebServerApplicationContext;
import org.springframework.boot.web.reactive.context.ReactiveWebApplicationContext;
import org.springframework.boot.web.reactive.context.StandardReactiveWebEnvironment;
-import org.springframework.boot.web.server.reactive.netty.NettyReactiveWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.web.server.reactive.MockReactiveWebServerFactory;
+import org.springframework.boot.web.server.servlet.MockServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
@@ -1736,8 +1736,8 @@ ApplicationEventMulticaster applicationEventMulticaster() {
static class ExampleWebConfig {
@Bean
- TomcatServletWebServerFactory webServer() {
- return new TomcatServletWebServerFactory(0);
+ MockServletWebServerFactory webServer() {
+ return new MockServletWebServerFactory();
}
}
@@ -1746,8 +1746,8 @@ TomcatServletWebServerFactory webServer() {
static class ExampleReactiveWebConfig {
@Bean
- NettyReactiveWebServerFactory webServerFactory() {
- return new NettyReactiveWebServerFactory(0);
+ MockReactiveWebServerFactory webServerFactory() {
+ return new MockReactiveWebServerFactory();
}
@Bean
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderTests.java
index 3f4b5a4ed9f5..f86f3ca78bb3 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderTests.java
+++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/builder/SpringApplicationBuilderTests.java
@@ -274,7 +274,7 @@ void initializersCreatedOnce() {
SpringApplicationBuilder application = new SpringApplicationBuilder(ExampleConfig.class)
.web(WebApplicationType.NONE);
this.context = application.run();
- assertThat(application.application().getInitializers()).hasSize(5);
+ assertThat(application.application().getInitializers()).hasSize(4);
}
@Test
@@ -283,7 +283,7 @@ void initializersCreatedOnceForChild() {
.child(ChildConfig.class)
.web(WebApplicationType.NONE);
this.context = application.run();
- assertThat(application.application().getInitializers()).hasSize(6);
+ assertThat(application.application().getInitializers()).hasSize(5);
}
@Test
@@ -293,7 +293,7 @@ void initializersIncludeDefaults() {
.initializers((ConfigurableApplicationContext applicationContext) -> {
});
this.context = application.run();
- assertThat(application.application().getInitializers()).hasSize(6);
+ assertThat(application.application().getInitializers()).hasSize(5);
}
@Test
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java
index d7c8b12a4901..1a23ac597ccf 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java
+++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/logging/LoggingApplicationListenerIntegrationTests.java
@@ -30,7 +30,9 @@
import org.springframework.boot.context.event.ApplicationStartingEvent;
import org.springframework.boot.logging.LogFile;
import org.springframework.boot.logging.LoggingSystem;
+import org.springframework.boot.logging.LoggingSystemFactory;
import org.springframework.boot.logging.LoggingSystemProperty;
+import org.springframework.boot.testsupport.classpath.resources.WithResource;
import org.springframework.boot.testsupport.system.CapturedOutput;
import org.springframework.boot.testsupport.system.OutputCaptureExtension;
import org.springframework.context.ApplicationListener;
@@ -44,6 +46,10 @@
*
* @author Stephane Nicoll
*/
+@WithResource(name = "META-INF/spring.factories",
+ content = """
+ org.springframework.boot.logging.LoggingSystemFactory=org.springframework.boot.context.logging.LoggingApplicationListenerIntegrationTests$MockLoggingSystemFactory
+ """)
@ExtendWith(OutputCaptureExtension.class)
class LoggingApplicationListenerIntegrationTests {
@@ -110,4 +116,22 @@ static class Config {
}
+ static class MockLoggingSystemFactory implements LoggingSystemFactory {
+
+ @Override
+ public LoggingSystem getLoggingSystem(ClassLoader classLoader) {
+ return new MockLoggingSystem();
+ }
+
+ }
+
+ static class MockLoggingSystem extends LoggingSystem {
+
+ @Override
+ public void beforeInitialize() {
+
+ }
+
+ }
+
}
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/FilterRegistrationIntegrationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/FilterRegistrationIntegrationTests.java
index 9af97a481b5f..19eebb3cd35e 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/FilterRegistrationIntegrationTests.java
+++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/FilterRegistrationIntegrationTests.java
@@ -20,7 +20,7 @@
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.Test;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
+import org.springframework.boot.web.server.servlet.MockServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.boot.web.servlet.mock.MockFilter;
import org.springframework.context.annotation.Bean;
@@ -65,8 +65,8 @@ private void load(Class> configuration) {
static class ContainerConfiguration {
@Bean
- TomcatServletWebServerFactory webServerFactory() {
- return new TomcatServletWebServerFactory(0);
+ MockServletWebServerFactory webServerFactory() {
+ return new MockServletWebServerFactory();
}
}
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletComponentScanIntegrationTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletComponentScanIntegrationTests.java
index 72bdc2de835a..f2e2711eb2d6 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletComponentScanIntegrationTests.java
+++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/ServletComponentScanIntegrationTests.java
@@ -23,35 +23,25 @@
import java.net.URLClassLoader;
import java.util.Map;
import java.util.Properties;
-import java.util.stream.Stream;
import jakarta.servlet.MultipartConfigElement;
import jakarta.servlet.annotation.WebFilter;
import jakarta.servlet.annotation.WebListener;
import jakarta.servlet.annotation.WebServlet;
import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
-import org.junit.jupiter.params.ParameterizedTest;
-import org.junit.jupiter.params.provider.Arguments;
-import org.junit.jupiter.params.provider.MethodSource;
import org.springframework.beans.factory.ObjectProvider;
-import org.springframework.boot.testsupport.classpath.ForkedClassPath;
-import org.springframework.boot.testsupport.web.servlet.DirtiesUrlFactories;
-import org.springframework.boot.web.context.ServerPortInfoApplicationContextInitializer;
import org.springframework.boot.web.server.servlet.ConfigurableServletWebServerFactory;
+import org.springframework.boot.web.server.servlet.MockServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.jetty.JettyServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.tomcat.TomcatServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext;
import org.springframework.boot.web.servlet.testcomponents.filter.TestFilter;
import org.springframework.boot.web.servlet.testcomponents.listener.TestListener;
import org.springframework.boot.web.servlet.testcomponents.servlet.TestMultipartServlet;
import org.springframework.boot.web.servlet.testcomponents.servlet.TestServlet;
import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.web.client.RestTemplate;
import static org.assertj.core.api.Assertions.assertThat;
@@ -60,7 +50,6 @@
*
* @author Andy Wilkinson
*/
-@DirtiesUrlFactories
class ServletComponentScanIntegrationTests {
private AnnotationConfigServletWebServerApplicationContext context;
@@ -75,44 +64,41 @@ void cleanUp() {
}
}
- @ParameterizedTest(name = "{0}")
- @MethodSource("testConfiguration")
- @ForkedClassPath
- void componentsAreRegistered(String serverName, Class> configuration) {
+ @Test
+ void componentsAreRegistered() {
this.context = new AnnotationConfigServletWebServerApplicationContext();
- this.context.register(configuration);
- new ServerPortInfoApplicationContextInitializer().initialize(this.context);
+ this.context.register(TestConfiguration.class);
this.context.refresh();
- String port = this.context.getEnvironment().getProperty("local.server.port");
- String response = new RestTemplate().getForObject("http://localhost:" + port + "/test", String.class);
- assertThat(response).isEqualTo("alpha bravo charlie");
+ assertThat(this.context.getServletContext().getFilterRegistrations()).hasSize(1)
+ .containsKey(TestFilter.class.getName());
+ assertThat(this.context.getServletContext().getServletRegistrations()).hasSize(2)
+ .containsKeys(TestServlet.class.getName(), TestMultipartServlet.class.getName());
+ assertThat(this.context.getBean(MockServletWebServerFactory.class).getSettings().getWebListenerClassNames())
+ .containsExactly(TestListener.class.getName());
}
- @ParameterizedTest(name = "{0}")
- @MethodSource("testConfiguration")
- @ForkedClassPath
- void indexedComponentsAreRegistered(String serverName, Class> configuration) throws IOException {
+ @Test
+ void indexedComponentsAreRegistered() throws IOException {
writeIndex(this.temp);
this.context = new AnnotationConfigServletWebServerApplicationContext();
try (URLClassLoader classLoader = new URLClassLoader(new URL[] { this.temp.toURI().toURL() },
getClass().getClassLoader())) {
this.context.setClassLoader(classLoader);
- this.context.register(configuration);
- new ServerPortInfoApplicationContextInitializer().initialize(this.context);
+ this.context.register(TestConfiguration.class);
this.context.refresh();
- String port = this.context.getEnvironment().getProperty("local.server.port");
- String response = new RestTemplate().getForObject("http://localhost:" + port + "/test", String.class);
- assertThat(response).isEqualTo("alpha bravo charlie");
+ assertThat(this.context.getServletContext().getFilterRegistrations()).hasSize(1)
+ .containsKey(TestFilter.class.getName());
+ assertThat(this.context.getServletContext().getServletRegistrations()).hasSize(1)
+ .containsKeys(TestServlet.class.getName());
+ assertThat(this.context.getBean(MockServletWebServerFactory.class).getSettings().getWebListenerClassNames())
+ .containsExactly(TestListener.class.getName());
}
}
- @ParameterizedTest(name = "{0}")
- @MethodSource("testConfiguration")
- @ForkedClassPath
- void multipartConfigIsHonoured(String serverName, Class> configuration) {
+ @Test
+ void multipartConfigIsHonoured() {
this.context = new AnnotationConfigServletWebServerApplicationContext();
- this.context.register(configuration);
- new ServerPortInfoApplicationContextInitializer().initialize(this.context);
+ this.context.register(TestConfiguration.class);
this.context.refresh();
@SuppressWarnings("rawtypes")
Map beans = this.context.getBeansOfType(ServletRegistrationBean.class);
@@ -138,54 +124,16 @@ private void writeIndex(File temp) throws IOException {
}
}
- static Stream testConfiguration() {
- return Stream.of(Arguments.of("Jetty", JettyTestConfiguration.class),
- Arguments.of("Tomcat", TomcatTestConfiguration.class),
- Arguments.of("Undertow", UndertowTestConfiguration.class));
- }
-
@ServletComponentScan(basePackages = "org.springframework.boot.web.servlet.testcomponents")
- abstract static class AbstractTestConfiguration {
+ static class TestConfiguration {
@Bean
protected ServletWebServerFactory webServerFactory(ObjectProvider webListenerRegistrars) {
- ConfigurableServletWebServerFactory factory = createWebServerFactory();
+ ConfigurableServletWebServerFactory factory = new MockServletWebServerFactory();
webListenerRegistrars.orderedStream().forEach((registrar) -> registrar.register(factory));
return factory;
}
- abstract ConfigurableServletWebServerFactory createWebServerFactory();
-
- }
-
- @Configuration(proxyBeanMethods = false)
- static class JettyTestConfiguration extends AbstractTestConfiguration {
-
- @Override
- ConfigurableServletWebServerFactory createWebServerFactory() {
- return new JettyServletWebServerFactory(0);
- }
-
- }
-
- @Configuration(proxyBeanMethods = false)
- static class TomcatTestConfiguration extends AbstractTestConfiguration {
-
- @Override
- ConfigurableServletWebServerFactory createWebServerFactory() {
- return new TomcatServletWebServerFactory(0);
- }
-
- }
-
- @Configuration(proxyBeanMethods = false)
- static class UndertowTestConfiguration extends AbstractTestConfiguration {
-
- @Override
- ConfigurableServletWebServerFactory createWebServerFactory() {
- return new UndertowServletWebServerFactory(0);
- }
-
}
}
diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/SpringBootServletInitializerTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/SpringBootServletInitializerTests.java
index 1002979581a2..35c98ff3356b 100644
--- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/SpringBootServletInitializerTests.java
+++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/web/servlet/support/SpringBootServletInitializerTests.java
@@ -21,6 +21,7 @@
import java.util.Map;
import java.util.Vector;
import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicReference;
import jakarta.servlet.DispatcherType;
import jakarta.servlet.Filter;
@@ -41,8 +42,8 @@
import org.springframework.boot.testsupport.system.CapturedOutput;
import org.springframework.boot.testsupport.system.OutputCaptureExtension;
import org.springframework.boot.web.server.WebServer;
+import org.springframework.boot.web.server.servlet.MockServletWebServerFactory;
import org.springframework.boot.web.server.servlet.ServletWebServerFactory;
-import org.springframework.boot.web.server.servlet.undertow.UndertowServletWebServerFactory;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.ApplicationListener;
import org.springframework.context.ConfigurableApplicationContext;
@@ -126,14 +127,16 @@ void shutdownHooksAreNotRegistered() throws ServletException {
@Test
void errorPageFilterRegistrationCanBeDisabled() {
- WebServer webServer = new UndertowServletWebServerFactory(0).getWebServer((servletContext) -> {
+ AtomicReference