Skip to content

Commit d736268

Browse files
wilkinsonaphilwebb
authored andcommitted
Start splitting up spring-boot-autoconfigure
1 parent 9d0e647 commit d736268

File tree

1,256 files changed

+3775
-3726
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,256 files changed

+3775
-3726
lines changed

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ include "spring-boot-project:spring-boot-tools:spring-boot-test-support"
5858
include "spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"
5959
include "spring-boot-project:spring-boot"
6060
include "spring-boot-project:spring-boot-autoconfigure"
61+
include "spring-boot-project:spring-boot-autoconfigure-all"
6162
include "spring-boot-project:spring-boot-actuator"
6263
include "spring-boot-project:spring-boot-actuator-autoconfigure"
6364
include "spring-boot-project:spring-boot-all"

spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ description = "Spring Boot Actuator AutoConfigure"
1212
dependencies {
1313
api(project(":spring-boot-project:spring-boot-actuator"))
1414
api(project(":spring-boot-project:spring-boot-all"))
15-
api(project(":spring-boot-project:spring-boot-autoconfigure"))
15+
api(project(":spring-boot-project:spring-boot-autoconfigure-all"))
1616

1717
implementation("com.fasterxml.jackson.core:jackson-databind")
1818
implementation("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")

spring-boot-project/spring-boot-actuator/build.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ description = "Spring Boot Actuator"
1111
dependencies {
1212
api(project(":spring-boot-project:spring-boot-all"))
1313

14-
dockerTestImplementation(project(":spring-boot-project:spring-boot-autoconfigure"))
14+
dockerTestImplementation(project(":spring-boot-project:spring-boot-autoconfigure-all"))
1515
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
1616
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
1717
dockerTestImplementation("com.redis:testcontainers-redis")
@@ -94,7 +94,7 @@ dependencies {
9494

9595
testImplementation(project(":spring-boot-project:spring-boot-test"))
9696
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
97-
testImplementation(project(":spring-boot-project:spring-boot-autoconfigure"))
97+
testImplementation(project(":spring-boot-project:spring-boot-autoconfigure-all"))
9898
testImplementation("io.micrometer:micrometer-observation-test")
9999
testImplementation("io.projectreactor:reactor-test")
100100
testImplementation("io.r2dbc:r2dbc-h2")
Lines changed: 288 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,288 @@
1+
plugins {
2+
id "java-library"
3+
id "org.springframework.boot.auto-configuration"
4+
id "org.springframework.boot.configuration-properties"
5+
id "org.springframework.boot.deployed"
6+
id "org.springframework.boot.docker-test"
7+
id "org.springframework.boot.optional-dependencies"
8+
}
9+
10+
description = "Spring Boot AutoConfigure All"
11+
12+
configurations.all {
13+
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
14+
if (details.requested.module.group == "org.apache.kafka" && details.requested.module.name == "kafka-server-common") {
15+
details.artifactSelection {
16+
selectArtifact(DependencyArtifact.DEFAULT_TYPE, null, null)
17+
}
18+
}
19+
}
20+
}
21+
22+
dependencies {
23+
api(project(":spring-boot-project:spring-boot-all"))
24+
api(project(":spring-boot-project:spring-boot-autoconfigure"))
25+
26+
dockerTestImplementation(project(":spring-boot-project:spring-boot-test"))
27+
dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker"))
28+
dockerTestImplementation(testFixtures(project(":spring-boot-project:spring-boot")))
29+
dockerTestImplementation(testFixtures(project(":spring-boot-project:spring-boot-autoconfigure")))
30+
dockerTestImplementation("com.redis:testcontainers-redis")
31+
dockerTestImplementation("org.assertj:assertj-core")
32+
dockerTestImplementation("org.awaitility:awaitility")
33+
dockerTestImplementation("org.junit.jupiter:junit-jupiter")
34+
dockerTestImplementation("org.mockito:mockito-core")
35+
dockerTestImplementation("org.springframework:spring-test")
36+
dockerTestImplementation("org.testcontainers:cassandra")
37+
dockerTestImplementation("org.testcontainers:couchbase")
38+
dockerTestImplementation("org.testcontainers:elasticsearch")
39+
dockerTestImplementation("org.testcontainers:junit-jupiter")
40+
dockerTestImplementation("org.testcontainers:mongodb")
41+
dockerTestImplementation("org.testcontainers:neo4j")
42+
dockerTestImplementation("org.testcontainers:pulsar")
43+
dockerTestImplementation("org.testcontainers:testcontainers")
44+
45+
optional(project(":spring-boot-project:spring-boot-tomcat"))
46+
optional("co.elastic.clients:elasticsearch-java") {
47+
exclude group: "commons-logging", module: "commons-logging"
48+
}
49+
optional("com.fasterxml.jackson.core:jackson-databind")
50+
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor")
51+
optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml")
52+
optional("com.fasterxml.jackson.datatype:jackson-datatype-jsr310")
53+
optional("com.fasterxml.jackson.module:jackson-module-jakarta-xmlbind-annotations")
54+
optional("com.fasterxml.jackson.module:jackson-module-parameter-names")
55+
optional("com.google.code.gson:gson")
56+
optional("com.hazelcast:hazelcast")
57+
optional("com.hazelcast:hazelcast-spring")
58+
optional("com.h2database:h2")
59+
optional("com.nimbusds:oauth2-oidc-sdk")
60+
optional("com.oracle.database.jdbc:ojdbc11")
61+
optional("com.oracle.database.jdbc:ucp11")
62+
optional("com.querydsl:querydsl-core")
63+
optional("com.samskivert:jmustache")
64+
optional("io.lettuce:lettuce-core")
65+
optional("io.projectreactor.netty:reactor-netty-http")
66+
optional("io.r2dbc:r2dbc-spi")
67+
optional("io.r2dbc:r2dbc-pool")
68+
optional("io.r2dbc:r2dbc-proxy")
69+
optional("io.rsocket:rsocket-core")
70+
optional("io.rsocket:rsocket-transport-netty")
71+
optional("io.undertow:undertow-servlet")
72+
optional("io.undertow:undertow-websockets-jsr")
73+
optional("jakarta.jms:jakarta.jms-api")
74+
optional("jakarta.mail:jakarta.mail-api")
75+
optional("jakarta.json.bind:jakarta.json.bind-api")
76+
optional("jakarta.persistence:jakarta.persistence-api")
77+
optional("jakarta.transaction:jakarta.transaction-api")
78+
optional("jakarta.validation:jakarta.validation-api")
79+
optional("jakarta.websocket:jakarta.websocket-api")
80+
optional("jakarta.ws.rs:jakarta.ws.rs-api")
81+
optional("javax.cache:cache-api")
82+
optional("javax.money:money-api")
83+
optional("org.apache.activemq:activemq-broker")
84+
optional("org.apache.activemq:activemq-client")
85+
optional("org.apache.activemq:artemis-jakarta-client") {
86+
exclude group: "commons-logging", module: "commons-logging"
87+
}
88+
optional("org.apache.activemq:artemis-jakarta-server") {
89+
exclude group: "commons-logging", module: "commons-logging"
90+
}
91+
optional("org.apache.commons:commons-dbcp2") {
92+
exclude group: "commons-logging", module: "commons-logging"
93+
}
94+
optional("org.apache.httpcomponents.client5:httpclient5")
95+
optional("org.apache.httpcomponents.core5:httpcore5-reactive")
96+
optional("org.apache.kafka:kafka-streams")
97+
optional("org.apache.tomcat.embed:tomcat-embed-core")
98+
optional("org.apache.tomcat.embed:tomcat-embed-el")
99+
optional("org.apache.tomcat.embed:tomcat-embed-websocket")
100+
optional("org.apache.tomcat:tomcat-jdbc")
101+
optional("org.apiguardian:apiguardian-api")
102+
optional("org.apache.groovy:groovy-templates")
103+
optional("org.eclipse.angus:angus-mail")
104+
optional("com.github.ben-manes.caffeine:caffeine")
105+
optional("com.github.mxab.thymeleaf.extras:thymeleaf-extras-data-attribute")
106+
optional("com.sendgrid:sendgrid-java") {
107+
exclude group: "commons-logging", module: "commons-logging"
108+
}
109+
optional("com.unboundid:unboundid-ldapsdk")
110+
optional("com.zaxxer:HikariCP")
111+
optional("nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect")
112+
optional("org.aspectj:aspectjweaver")
113+
optional("org.cache2k:cache2k-spring")
114+
optional("org.eclipse.jetty.ee10:jetty-ee10-webapp")
115+
optional("org.eclipse.jetty:jetty-reactive-httpclient")
116+
optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jakarta-server")
117+
optional("org.eclipse.jetty.ee10.websocket:jetty-ee10-websocket-jetty-server")
118+
optional("org.ehcache:ehcache") {
119+
artifact {
120+
classifier = 'jakarta'
121+
}
122+
}
123+
optional("org.elasticsearch.client:elasticsearch-rest-client") {
124+
exclude group: "commons-logging", module: "commons-logging"
125+
}
126+
optional("org.elasticsearch.client:elasticsearch-rest-client-sniffer") {
127+
exclude group: "commons-logging", module: "commons-logging"
128+
}
129+
optional("org.flywaydb:flyway-core")
130+
optional("org.flywaydb:flyway-database-postgresql")
131+
optional("org.flywaydb:flyway-database-oracle")
132+
optional("org.flywaydb:flyway-sqlserver")
133+
optional("org.freemarker:freemarker")
134+
optional("org.glassfish.jersey.containers:jersey-container-servlet-core")
135+
optional("org.glassfish.jersey.containers:jersey-container-servlet")
136+
optional("org.glassfish.jersey.core:jersey-server")
137+
optional("org.glassfish.jersey.ext:jersey-spring6")
138+
optional("org.glassfish.jersey.media:jersey-media-json-jackson")
139+
optional("org.hibernate.orm:hibernate-core")
140+
optional("org.hibernate.orm:hibernate-jcache")
141+
optional("org.hibernate.validator:hibernate-validator")
142+
optional("org.infinispan:infinispan-commons")
143+
optional("org.infinispan:infinispan-component-annotations")
144+
optional("org.infinispan:infinispan-core")
145+
optional("org.infinispan:infinispan-jcache")
146+
optional("org.infinispan:infinispan-spring6-embedded")
147+
optional("org.influxdb:influxdb-java")
148+
optional("org.jooq:jooq") {
149+
exclude group: "javax.xml.bind", module: "jaxb-api"
150+
}
151+
optional("org.liquibase:liquibase-core") {
152+
exclude group: "javax.xml.bind", module: "jaxb-api"
153+
}
154+
optional("org.messaginghub:pooled-jms") {
155+
exclude group: "org.apache.geronimo.specs", module: "geronimo-jms_2.0_spec"
156+
}
157+
optional("org.mongodb:mongodb-driver-reactivestreams")
158+
optional("org.mongodb:mongodb-driver-sync")
159+
optional("org.opensaml:opensaml-core:4.0.1")
160+
optional("org.opensaml:opensaml-saml-api:4.0.1")
161+
optional("org.opensaml:opensaml-saml-impl:4.0.1")
162+
optional("org.quartz-scheduler:quartz")
163+
optional("org.springframework.integration:spring-integration-core")
164+
optional("org.springframework.integration:spring-integration-jdbc")
165+
optional("org.springframework.integration:spring-integration-jmx")
166+
optional("org.springframework.integration:spring-integration-rsocket")
167+
optional("org.springframework:spring-aspects")
168+
optional("org.springframework:spring-jdbc")
169+
optional("org.springframework:spring-jms")
170+
optional("org.springframework:spring-orm")
171+
optional("org.springframework:spring-tx")
172+
optional("org.springframework:spring-web")
173+
optional("org.springframework:spring-websocket")
174+
optional("org.springframework:spring-webflux")
175+
optional("org.springframework:spring-webmvc")
176+
optional("org.springframework.batch:spring-batch-core")
177+
optional("org.springframework.data:spring-data-couchbase")
178+
optional("org.springframework.data:spring-data-envers") {
179+
exclude group: "javax.activation", module: "javax.activation-api"
180+
exclude group: "javax.persistence", module: "javax.persistence-api"
181+
exclude group: "javax.xml.bind", module: "jaxb-api"
182+
exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec"
183+
}
184+
optional("org.springframework.data:spring-data-jpa")
185+
optional("org.springframework.data:spring-data-rest-webmvc")
186+
optional("org.springframework.data:spring-data-cassandra") {
187+
exclude group: "org.slf4j", module: "jcl-over-slf4j"
188+
}
189+
optional("org.springframework.data:spring-data-elasticsearch") {
190+
exclude group: "org.elasticsearch.client", module: "transport"
191+
}
192+
optional("org.springframework.data:spring-data-jdbc")
193+
optional("org.springframework.data:spring-data-ldap")
194+
optional("org.springframework.data:spring-data-mongodb")
195+
optional("org.springframework.data:spring-data-neo4j")
196+
optional("org.springframework.data:spring-data-r2dbc")
197+
optional("org.springframework.data:spring-data-redis")
198+
optional("org.springframework.graphql:spring-graphql")
199+
optional("org.springframework.hateoas:spring-hateoas")
200+
optional("org.springframework.pulsar:spring-pulsar")
201+
optional("org.springframework.pulsar:spring-pulsar-reactive")
202+
optional("org.springframework.security:spring-security-acl")
203+
optional("org.springframework.security:spring-security-config")
204+
optional("org.springframework.security:spring-security-data") {
205+
exclude group: "javax.xml.bind", module: "jaxb-api"
206+
}
207+
optional("org.springframework.security:spring-security-messaging")
208+
optional("org.springframework.security:spring-security-oauth2-authorization-server")
209+
optional("org.springframework.security:spring-security-oauth2-client")
210+
optional("org.springframework.security:spring-security-oauth2-jose")
211+
optional("org.springframework.security:spring-security-oauth2-resource-server")
212+
optional("org.springframework.security:spring-security-rsocket")
213+
optional("org.springframework.security:spring-security-saml2-service-provider") {
214+
exclude group: "org.opensaml", module: "opensaml-core"
215+
exclude group: "org.opensaml", module: "opensaml-saml-api"
216+
exclude group: "org.opensaml", module: "opensaml-saml-impl"
217+
}
218+
optional("org.springframework.security:spring-security-web")
219+
optional("org.springframework.session:spring-session-core")
220+
optional("org.springframework.session:spring-session-data-mongodb")
221+
optional("org.springframework.session:spring-session-data-redis")
222+
optional("org.springframework.session:spring-session-hazelcast")
223+
optional("org.springframework.session:spring-session-jdbc")
224+
optional("org.springframework.amqp:spring-rabbit")
225+
optional("org.springframework.amqp:spring-rabbit-stream")
226+
optional("org.springframework.kafka:spring-kafka")
227+
optional("org.springframework.ws:spring-ws-core") {
228+
exclude group: "com.sun.mail", module: "jakarta.mail"
229+
exclude group: "jakarta.platform", module: "jakarta.jakartaee-api"
230+
exclude group: "org.eclipse.jetty", module: "jetty-server"
231+
exclude group: "org.eclipse.jetty", module: "jetty-servlet"
232+
exclude group: "jakarta.mail", module: "jakarta.mail-api"
233+
}
234+
optional("org.thymeleaf:thymeleaf")
235+
optional("org.thymeleaf:thymeleaf-spring6")
236+
optional("org.thymeleaf.extras:thymeleaf-extras-springsecurity6")
237+
optional("redis.clients:jedis")
238+
239+
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
240+
testImplementation(project(":spring-boot-project:spring-boot-test"))
241+
testImplementation(testFixtures(project(":spring-boot-project:spring-boot")))
242+
testImplementation(testFixtures(project(":spring-boot-project:spring-boot-autoconfigure")))
243+
testImplementation("ch.qos.logback:logback-classic")
244+
testImplementation("commons-fileupload:commons-fileupload")
245+
testImplementation("com.github.h-thurow:simple-jndi")
246+
testImplementation("com.ibm.db2:jcc")
247+
testImplementation("com.mysql:mysql-connector-j")
248+
testImplementation("com.squareup.okhttp3:mockwebserver")
249+
testImplementation("com.sun.xml.messaging.saaj:saaj-impl")
250+
testImplementation("io.micrometer:context-propagation")
251+
testImplementation("io.projectreactor:reactor-test")
252+
testImplementation("io.r2dbc:r2dbc-h2")
253+
testImplementation("jakarta.json:jakarta.json-api")
254+
testImplementation("jakarta.xml.ws:jakarta.xml.ws-api")
255+
testImplementation("org.apache.logging.log4j:log4j-to-slf4j")
256+
testImplementation("org.apache.tomcat.embed:tomcat-embed-jasper")
257+
testImplementation("org.eclipse:yasson")
258+
testImplementation("org.hsqldb:hsqldb")
259+
testImplementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")
260+
testImplementation("org.junit.jupiter:junit-jupiter")
261+
testImplementation("org.postgresql:postgresql")
262+
testImplementation("org.postgresql:r2dbc-postgresql")
263+
testImplementation("org.springframework.graphql:spring-graphql-test")
264+
testImplementation("org.springframework.kafka:spring-kafka-test") {
265+
exclude group: "commons-logging", module: "commons-logging"
266+
}
267+
testImplementation("org.springframework.pulsar:spring-pulsar-cache-provider-caffeine")
268+
testImplementation("org.springframework.security:spring-security-test")
269+
testImplementation("org.yaml:snakeyaml")
270+
271+
testRuntimeOnly("jakarta.management.j2ee:jakarta.management.j2ee-api")
272+
testRuntimeOnly("org.flywaydb:flyway-database-hsqldb")
273+
testRuntimeOnly("org.jetbrains.kotlin:kotlin-reflect")
274+
}
275+
276+
tasks.named("checkSpringConfigurationMetadata").configure {
277+
exclusions = [
278+
"spring.datasource.dbcp2.*",
279+
"spring.datasource.hikari.*",
280+
"spring.datasource.oracleucp.*",
281+
"spring.datasource.tomcat.*",
282+
"spring.groovy.template.configuration.*"
283+
]
284+
}
285+
286+
test {
287+
jvmArgs += "--add-opens=java.base/java.net=ALL-UNNAMED"
288+
}
Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2019 the original author or authors.
2+
* Copyright 2012-2025 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -45,10 +45,9 @@ class JacksonHttpMessageConvertersConfiguration {
4545
static class MappingJackson2HttpMessageConverterConfiguration {
4646

4747
@Bean
48-
@ConditionalOnMissingBean(value = MappingJackson2HttpMessageConverter.class,
49-
ignoredType = {
50-
"org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter",
51-
"org.springframework.data.rest.webmvc.alps.AlpsJsonHttpMessageConverter" })
48+
@ConditionalOnMissingBean(ignoredType = {
49+
"org.springframework.hateoas.server.mvc.TypeConstrainedMappingJackson2HttpMessageConverter",
50+
"org.springframework.data.rest.webmvc.alps.AlpsJsonHttpMessageConverter" })
5251
MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter(ObjectMapper objectMapper) {
5352
return new MappingJackson2HttpMessageConverter(objectMapper);
5453
}
Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,11 @@
1414
* limitations under the License.
1515
*/
1616

17-
package org.springframework.boot.autoconfigure.preinitialize;
17+
package org.springframework.boot.autoconfigure.http;
1818

1919
import org.apache.activemq.artemis.spi.core.protocol.MessageConverter;
2020

21+
import org.springframework.boot.autoconfigure.preinitialize.BackgroundPreinitializer;
2122
import org.springframework.http.converter.support.AllEncompassingFormHttpMessageConverter;
2223

2324
/**

0 commit comments

Comments
 (0)