Skip to content

Commit bff757b

Browse files
committed
Start splitting up spring-boot-autoconfigure
1 parent 94b0d73 commit bff757b

File tree

1,259 files changed

+3690
-3643
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,259 files changed

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