From 685dabce01034018fad7f300d68946201676ea8a Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Thu, 22 May 2025 15:12:31 -0700 Subject: [PATCH 001/711] Next development version (v3.5.1-SNAPSHOT) --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 106454be79a0..da702cf9edfc 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ -version=3.5.0-SNAPSHOT +version=3.5.1-SNAPSHOT latestVersion=true spring.build-type=oss From 7628ae8503a5f61437d6d4fd9b2c546b2ec50bbb Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 16 May 2025 09:10:39 +0100 Subject: [PATCH 002/711] Check Kotlin code using Detekt Closes gh-45583 --- buildSrc/build.gradle | 1 + .../boot/build/KotlinConventions.java | 24 ++++++-- .../MyCloudFoundryConfiguration.kt | 5 +- .../MyReactiveCloudFoundryConfiguration.kt | 3 +- .../MyReactiveHealthIndicator.kt | 5 +- .../MyHealthIndicator.kt | 5 +- .../implementingcustom/CustomData.kt | 5 +- .../implementingcustom/MyEndpoint.kt | 5 +- .../MyInfoContributor.kt | 5 +- .../exposeall/MySecurityConfiguration.kt | 3 +- .../typical/MySecurityConfiguration.kt | 3 +- .../MyMetricsFilterConfiguration.kt | 5 +- .../graphite/MyGraphiteConfiguration.kt | 5 +- .../metrics/export/jmx/MyJmxConfiguration.kt | 5 +- .../MyMeterRegistryConfiguration.kt | 5 +- .../MyMeterRegistryConfiguration.kt | 5 +- .../metrics/registeringcustom/Dictionary.kt | 5 +- .../metrics/registeringcustom/MyBean.kt | 5 +- .../MyMeterBinderConfiguration.kt | 5 +- .../metrics/registeringcustom/Queue.kt | 5 +- .../command/CustomCommandTagsProvider.kt | 3 +- .../MyCommandTagsProviderConfiguration.kt | 3 +- .../CustomConnectionPoolTagsProvider.kt | 3 +- ...ConnectionPoolTagsProviderConfiguration.kt | 3 +- .../MyBuildTool.kt | 5 +- .../MyMessagingProperties.kt | 5 +- .../MyServerProperties.kt | 5 +- .../nestedproperties/MyServerProperties.kt | 5 +- .../format/property/MyProperties.kt | 5 +- .../manualhints/valuehint/MyProperties.kt | 5 +- .../data/nosql/cassandra/connecting/MyBean.kt | 5 +- .../repositories/CouchbaseProperties.kt | 5 +- .../nosql/couchbase/repositories/MyBean.kt | 5 +- .../couchbase/repositories/MyConverter.kt | 5 +- .../repositories/MyCouchbaseConfiguration.kt | 5 +- .../connectingusingspringdata/MyBean.kt | 5 +- .../connectingusingspringdata/User.kt | 5 +- .../data/nosql/ldap/repositories/MyBean.kt | 5 +- .../docs/data/nosql/ldap/repositories/User.kt | 5 +- .../data/nosql/mongodb/connecting/MyBean.kt | 5 +- .../data/nosql/mongodb/repositories/City.kt | 5 +- .../mongodb/repositories/CityRepository.kt | 5 +- .../data/nosql/mongodb/template/MyBean.kt | 5 +- .../data/nosql/neo4j/connecting/MyBean.kt | 9 ++- .../data/nosql/neo4j/repositories/City.kt | 5 +- .../neo4j/repositories/CityRepository.kt | 5 +- .../repositories/MyNeo4jConfiguration.kt | 5 +- .../data/nosql/redis/connecting/MyBean.kt | 5 +- .../DevProfileSecurityConfiguration.kt | 5 +- .../boot/docs/data/sql/jdbcclient/MyBean.kt | 3 +- .../boot/docs/data/sql/jdbctemplate/MyBean.kt | 5 +- .../docs/data/sql/jooq/dslcontext/MyBean.kt | 5 +- .../docs/data/sql/jooq/dslcontext/Tables.kt | 5 +- .../jpaandspringdata/entityclasses/City.kt | 5 +- .../jpaandspringdata/entityclasses/Country.kt | 5 +- .../enversrepositories/CountryRepository.kt | 5 +- .../repositories/CityRepository.kt | 5 +- .../sql/r2dbc/MyPostgresR2dbcConfiguration.kt | 5 +- .../data/sql/r2dbc/MyR2dbcConfiguration.kt | 5 +- .../docs/data/sql/r2dbc/repositories/City.kt | 5 +- .../sql/r2dbc/repositories/CityRepository.kt | 5 +- .../sql/r2dbc/usingdatabaseclient/MyBean.kt | 5 +- .../devtools/restart/disable/MyApplication.kt | 5 +- .../beanconditions/MyAutoConfiguration.kt | 3 +- .../beanconditions/SomeService.kt | 5 +- .../classconditions/MyAutoConfiguration.kt | 5 +- .../classconditions/SomeService.kt | 5 +- .../configurationkeys/AcmeProperties.kt | 3 +- .../MyConditionEvaluationReportingTests.kt | 5 +- .../testing/MyService.kt | 5 +- .../testing/MyServiceAutoConfiguration.kt | 5 +- .../MyServiceAutoConfigurationTests.kt | 3 +- .../docs/features/externalconfig/MyBean.kt | 5 +- .../constructorbinding/MyProperties.kt | 3 +- .../nonnull/MyProperties.kt | 3 +- .../primaryconstructor/MyProperties.kt | 1 + .../constructorbinding/MyProperties.kt | 3 +- .../datasizes/javabeanbinding/MyProperties.kt | 5 +- .../constructorbinding/MyProperties.kt | 3 +- .../durations/javabeanbinding/MyProperties.kt | 5 +- .../enablingannotatedtypes/MyApplication.kt | 3 +- .../enablingannotatedtypes/MyConfiguration.kt | 3 +- .../enablingannotatedtypes/SomeProperties.kt | 3 +- .../javabeanbinding/MyProperties.kt | 3 +- .../mergingcomplextypes/list/MyPojo.kt | 5 +- .../mergingcomplextypes/list/MyProperties.kt | 5 +- .../mergingcomplextypes/map/MyPojo.kt | 5 +- .../mergingcomplextypes/map/MyProperties.kt | 5 +- .../relaxedbinding/MyPersonProperties.kt | 5 +- .../MyMapsProperties.kt | 1 + .../AnotherComponent.kt | 5 +- .../ThirdPartyConfiguration.kt | 3 +- .../usingannotatedtypes/MyProperties.kt | 5 +- .../usingannotatedtypes/MyService.kt | 5 +- .../validate/MyProperties.kt | 5 +- .../validate/nested/MyProperties.kt | 5 +- .../validation/MyProperties.kt | 3 +- .../validation/nested/MyProperties.kt | 3 +- .../MyJsonComponent.kt | 5 +- .../MyObject.kt | 3 +- .../object/MyJsonComponent.kt | 3 +- .../object/MyObject.kt | 3 +- .../profiles/ProductionConfiguration.kt | 5 +- .../springapplication/MyApplication.kt | 3 +- .../applicationarguments/MyBean.kt | 5 +- .../managing/MyLocalCacheVerifier.kt | 5 +- .../managing/MyReadinessStateExporter.kt | 5 +- .../applicationexit/MyApplication.kt | 3 +- .../commandlinerunner/MyCommandLineRunner.kt | 5 +- .../MyApplication.kt | 5 +- .../fluentbuilderapi/MyApplication.kt | 5 +- .../startuptracking/MyApplication.kt | 5 +- .../docs/features/ssl/bundles/MyComponent.kt | 3 +- .../devtools/MyContainersConfiguration.kt | 3 +- .../MyContainersConfiguration.kt | 3 +- .../MyContainersConfiguration.kt | 3 +- .../atdevelopmenttime/launch/MyApplication.kt | 3 +- .../launch/TestMyApplication.kt | 3 +- .../atdevelopmenttime/test/MyApplication.kt | 3 +- .../test/MyContainersConfiguration.kt | 3 +- .../test/TestMyApplication.kt | 3 +- .../firstapplication/code/MyApplication.kt | 5 +- .../MetricsHealthMicrometerExport.kt | 3 +- .../MyHealthMetricsExportConfiguration.kt | 3 +- .../MyEnvironmentPostProcessor.kt | 3 +- ...ityManagerFactoryDependsOnPostProcessor.kt | 3 +- .../builder/MyDataSourceConfiguration.kt | 3 +- .../configurable/MyDataSourceConfiguration.kt | 3 +- .../custom/MyDataSourceConfiguration.kt | 3 +- .../custom/SomeDataSource.kt | 3 +- .../simple/MyDataSourceConfiguration.kt | 3 +- .../spring/MyHibernateConfiguration.kt | 3 +- .../standard/MyHibernateConfiguration.kt | 3 +- ...yHibernateSecondLevelCacheConfiguration.kt | 3 +- .../MyCompleteDataSourcesConfiguration.kt | 3 +- .../MyDataSourcesConfiguration.kt | 3 +- .../MyEntityScanConfiguration.kt | 3 +- .../City.kt | 3 +- .../MyApplication.kt | 3 +- .../usemultipleentitymanagers/Customer.kt | 3 +- .../CustomerConfiguration.kt | 3 +- .../MyEntityManagerFactoryConfiguration.kt | 3 +- .../usemultipleentitymanagers/Order.kt | 3 +- .../OrderConfiguration.kt | 3 +- .../cloudfoundry/bindingtoservices/MyBean.kt | 5 +- .../MyReactorNettyClientConfiguration.kt | 3 +- .../MyJmsConfiguration.kt | 3 +- .../application/MyApplication.kt | 5 +- .../builder/MyApplication.kt | 3 +- .../security/enablehttps/MySecurityConfig.kt | 3 +- .../writejsonrestservice/MyController.kt | 3 +- .../springmvc/writejsonrestservice/MyThing.kt | 3 +- .../springmvc/writexmlrestservice/MyThing.kt | 3 +- .../withspringsecurity/MySecurityTests.kt | 3 +- .../withspringsecurity/UserController.kt | 3 +- .../MyApplication.kt | 3 +- .../both/MyApplication.kt | 3 +- .../weblogic/MyApplication.kt | 3 +- .../disable/{Filter.kt => MyFilter.kt} | 3 +- .../disable/MyFilterConfiguration.kt | 3 +- .../configure/MyTomcatWebServerCustomizer.kt | 3 +- .../MyWebSocketConfiguration.kt | 3 +- .../discoverport/MyWebIntegrationTests.kt | 3 +- .../MyTomcatConfiguration.kt | 3 +- .../MyUndertowConfiguration.kt | 3 +- .../boot/docs/io/caching/MyMathService.kt | 5 +- .../provider/MyCacheManagerConfiguration.kt | 3 +- .../cache2k/MyCache2kDefaultsConfiguration.kt | 3 +- .../MyCouchbaseCacheManagerConfiguration.kt | 3 +- .../redis/MyRedisCacheManagerConfiguration.kt | 3 +- .../nonxa/MyBean.kt | 3 +- .../primary/MyBean.kt | 3 +- .../mixingxaandnonxaconnections/xa/MyBean.kt | 3 +- .../boot/docs/io/quartz/MySampleJob.kt | 3 +- .../boot/docs/io/quartz/MyService.kt | 3 +- .../docs/io/restclient/restclient/Details.kt | 3 +- .../io/restclient/restclient/ssl/Details.kt | 3 +- .../io/restclient/restclient/ssl/MyService.kt | 3 +- .../restclient/ssl/settings/Details.kt | 3 +- .../io/restclient/resttemplate/Details.kt | 3 +- .../io/restclient/resttemplate/MyService.kt | 5 +- .../MyRestTemplateBuilderConfiguration.kt | 3 +- .../customization/MyRestTemplateCustomizer.kt | 3 +- .../restclient/resttemplate/ssl/MyService.kt | 3 +- .../docs/io/restclient/webclient/Details.kt | 3 +- .../io/restclient/webclient/ssl/Details.kt | 3 +- .../boot/docs/io/validation/Archive.kt | 3 +- .../boot/docs/io/validation/Author.kt | 3 +- .../boot/docs/io/validation/MyBean.kt | 3 +- .../docs/io/webservices/template/MyService.kt | 3 +- .../MyWebServiceTemplateConfiguration.kt | 3 +- .../io/webservices/template/SomeRequest.kt | 3 +- .../io/webservices/template/SomeResponse.kt | 3 +- .../messaging/amqp/receiving/custom/MyBean.kt | 3 +- .../receiving/custom/MyMessageConverter.kt | 3 +- .../receiving/custom/MyRabbitConfiguration.kt | 5 +- .../docs/messaging/amqp/sending/MyBean.kt | 5 +- .../docs/messaging/jms/receiving/MyBean.kt | 3 +- .../messaging/jms/receiving/custom/MyBean.kt | 3 +- .../receiving/custom/MyJmsConfiguration.kt | 3 +- .../receiving/custom/MyMessageConverter.kt | 3 +- .../boot/docs/messaging/jms/sending/MyBean.kt | 3 +- .../kafka/embedded/annotation/MyTest.kt | 3 +- .../kafka/embedded/property/MyTest.kt | 5 +- .../docs/messaging/kafka/sending/MyBean.kt | 3 +- .../streams/MyKafkaStreamsConfiguration.kt | 3 +- .../pulsar/readingreactive/MyBean.kt | 3 +- .../pulsar/receivingreactive/MyBean.kt | 3 +- .../pulsar/sendingreactive/MyBean.kt | 3 +- .../messaging/rsocket/requester/MyService.kt | 3 +- .../docs/messaging/rsocket/requester/User.kt | 3 +- .../MyPropertiesKotlin.kt | 3 +- .../MyJdbcTests.kt | 3 +- .../MyTransactionalTests.kt | 3 +- .../autoconfiguredjooq/MyJooqTests.kt | 3 +- .../MyRestClientServiceTests.kt | 3 +- .../MyRestTemplateServiceTests.kt | 5 +- .../RemoteVehicleDetailsService.kt | 5 +- .../MyDataCassandraTests.kt | 3 +- .../SomeRepository.kt | 3 +- .../MyDataCouchbaseTests.kt | 3 +- .../SomeRepository.kt | 3 +- .../MyDataElasticsearchTests.kt | 3 +- .../SomeRepository.kt | 3 +- .../MyNonTransactionalTests.kt | 3 +- .../withdb/MyRepositoryTests.kt | 3 +- .../withoutdb/MyRepositoryTests.kt | 3 +- .../withoutdb/User.kt | 3 +- .../withoutdb/UserRepository.kt | 3 +- .../inmemory/MyDataLdapTests.kt | 3 +- .../server/MyDataLdapTests.kt | 3 +- .../MyDataMongoDbTests.kt | 3 +- .../nopropagation/MyDataNeo4jTests.kt | 3 +- .../propagation/MyDataNeo4jTests.kt | 3 +- .../propagation/SomeRepository.kt | 3 +- .../MyDataRedisTests.kt | 3 +- .../SomeRepository.kt | 3 +- .../withmockmvc/MyRestDocsConfiguration.kt | 5 +- .../MyResultHandlerConfiguration.kt | 3 +- .../withmockmvc/MyUserDocumentationTests.kt | 5 +- .../withmockmvc/UserController.kt | 3 +- .../MyRestDocsConfiguration.kt | 3 +- .../MyUserDocumentationTests.kt | 3 +- .../MyRestDocsConfiguration.kt | 3 +- .../MyUsersDocumentationTests.kt | 5 +- ...estClientBuilderCustomizerConfiguration.kt | 3 +- .../client/MyWebServiceClientTests.kt | 6 +- .../client/Request.kt | 3 +- .../client/Response.kt | 3 +- .../client/SomeWebService.kt | 3 +- .../server/ExampleEndpoint.kt | 3 +- .../server/MyWebServiceServerTests.kt | 3 +- .../detectingwebapptype/MyWebFluxTests.kt | 5 +- .../excludingconfiguration/MyTests.kt | 3 +- .../MyTestsConfiguration.kt | 3 +- .../springbootapplications/jmx/MyJmxTests.kt | 3 +- .../springbootapplications/jmx/SampleApp.kt | 3 +- .../jsontests/MyJsonAssertJTests.kt | 3 +- .../jsontests/MyJsonTests.kt | 3 +- .../jsontests/SomeObject.kt | 3 +- .../jsontests/VehicleDetails.kt | 3 +- .../mockingbeans/bean/MyTests.kt | 5 +- .../mockingbeans/bean/RemoteService.kt | 3 +- .../mockingbeans/bean/Reverser.kt | 5 +- .../mockingbeans/listener/MyConfig.kt | 3 +- .../mockingbeans/listener/MyTests.kt | 3 +- .../GraphQlIntegrationTests.kt | 5 +- .../GreetingControllerTests.kt | 3 +- .../springmvctests/MyControllerTests.kt | 3 +- .../springmvctests/MyHtmlUnitTests.kt | 3 +- .../springmvctests/UserVehicleController.kt | 3 +- .../springmvctests/UserVehicleService.kt | 3 +- .../springmvctests/VehicleDetails.kt | 3 +- .../springwebfluxtests/MyControllerTests.kt | 5 +- .../UserVehicleController.kt | 5 +- .../springwebfluxtests/UserVehicleService.kt | 3 +- .../springwebfluxtests/VehicleDetails.kt | 3 +- .../MyApplication.kt | 3 +- .../MyMongoConfiguration.kt | 3 +- .../MyWebConfiguration.kt | 5 +- .../MyWebMvcConfigurer.kt | 3 +- .../scan/MyApplication.kt | 3 +- .../MyApplicationArgumentTests.kt | 3 +- .../usingmain/always/MyApplicationTests.kt | 3 +- .../usingmain/custom/MyApplication.kt | 3 +- .../usingmain/typical/MyApplication.kt | 3 +- .../withmockenvironment/MyMockMvcTests.kt | 3 +- .../MyMockWebTestClientTests.kt | 3 +- .../MyRandomPortTestRestTemplateTests.kt | 3 +- .../MyRandomPortWebTestClientTests.kt | 5 +- .../dynamicproperties/MyIntegrationTests.kt | 3 +- .../MyContainers.kt | 3 +- .../MyTestConfiguration.kt | 1 + .../serviceconnections/MyIntegrationTests.kt | 3 +- .../MyRedisConfiguration.kt | 5 +- .../springbeans/MyIntegrationTests.kt | 3 +- .../springbeans/MyTestConfiguration.kt | 3 +- .../Config.kt | 3 +- .../MyConfigFileTests.kt | 3 +- .../outputcapture/MyOutputCaptureTests.kt | 5 +- .../testpropertyvalues/MyEnvironmentTests.kt | 3 +- .../testresttemplate/MySpringBootTests.kt | 3 +- .../MySpringBootTestsConfiguration.kt | 3 +- .../utilities/testresttemplate/MyTests.kt | 3 +- .../disablingspecific/MyApplication.kt | 3 +- .../devtools/restart/disable/MyApplication.kt | 3 +- .../multipleconstructors/MyAccountService.kt | 3 +- .../singleconstructor/MyAccountService.kt | 3 +- .../locatingthemainclass/MyApplication.kt | 3 +- .../individualannotations/MyApplication.kt | 3 +- .../springapplication/MyApplication.kt | 3 +- .../runtimewiring/GreetingController.kt | 3 +- .../rsocket/RSocketGraphQlClientExample.kt | 5 +- .../MyNettyWebServerFactoryCustomizer.kt | 5 +- .../MyWebServerFactoryCustomizer.kt | 5 +- .../docs/web/reactive/webflux/Customer.kt | 3 +- .../reactive/webflux/CustomerRepository.kt | 3 +- .../webflux/MyRoutingConfiguration.kt | 3 +- .../web/reactive/webflux/MyUserHandler.kt | 3 +- .../boot/docs/web/reactive/webflux/User.kt | 3 +- .../web/reactive/webflux/UserRepository.kt | 3 +- .../httpcodecs/MyCodecsConfiguration.kt | 3 +- .../client/MyOAuthClientConfiguration.kt | 3 +- .../MyWebFluxSecurityConfiguration.kt | 3 +- .../MyTomcatWebServerFactoryCustomizer.kt | 5 +- .../MyWebServerFactoryCustomizer.kt | 5 +- .../samesite/MySameSiteConfiguration.kt | 3 +- .../docs/web/servlet/springmvc/Customer.kt | 3 +- .../servlet/springmvc/CustomerRepository.kt | 5 +- .../springmvc/MyRoutingConfiguration.kt | 3 +- .../web/servlet/springmvc/MyUserHandler.kt | 3 +- .../boot/docs/web/servlet/springmvc/User.kt | 3 +- .../web/servlet/springmvc/UserRepository.kt | 3 +- .../springmvc/cors/MyCorsConfiguration.kt | 3 +- .../errorhandling/CustomException.kt | 3 +- .../errorhandling/MyControllerAdvice.kt | 3 +- .../errorpages/MyErrorViewResolver.kt | 5 +- .../MyErrorPagesConfiguration.kt | 3 +- .../errorpageswithoutspringmvc/MyFilter.kt | 5 +- .../MyFilterConfiguration.kt | 3 +- .../AdditionalHttpMessageConverter.kt | 3 +- .../AnotherHttpMessageConverter.kt | 3 +- .../MyHttpMessageConvertersConfiguration.kt | 3 +- .../web/client/TestRestTemplateExtensions.kt | 6 +- ...linApplicationWithMainThrowingException.kt | 1 + .../SpringBootContextLoaderKotlinTests.kt | 5 +- .../client/TestRestTemplateExtensionsTests.kt | 3 +- .../boot/SpringApplicationExtensions.kt | 6 +- .../boot/SpringApplicationExtensionsTests.kt | 9 ++- ...nfigurationPropertiesBeanRegistrarTests.kt | 1 + .../KotlinConfigurationPropertiesTests.kt | 5 +- ...otlinBindableRuntimeHintsRegistrarTests.kt | 3 +- .../KotlinConstructorParametersBinderTests.kt | 3 +- ...tlinDefaultBindConstructorProviderTests.kt | 59 ++++++++++++------- .../kotlinsample/TestKotlinApplication.kt | 1 + .../coroutines/CoroutinesControllerTests.kt | 2 +- src/detekt/config.yml | 25 ++++++++ 357 files changed, 911 insertions(+), 491 deletions(-) rename spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/{Filter.kt => MyFilter.kt} (92%) create mode 100644 src/detekt/config.yml diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 5d0f9157c2cf..7edd949b697f 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -36,6 +36,7 @@ dependencies { implementation("commons-codec:commons-codec:${commonsCodecVersion}") implementation("de.undercouch.download:de.undercouch.download.gradle.plugin:5.5.0") implementation("dev.adamko.dokkatoo:dokkatoo-plugin:2.3.1") + implementation("io.gitlab.arturbosch.detekt:detekt-gradle-plugin:1.23.8") implementation("io.spring.gradle.antora:spring-antora-plugin:0.0.1") implementation("io.spring.javaformat:spring-javaformat-gradle-plugin:${javaFormatVersion}") implementation("io.spring.nohttp:nohttp-gradle:0.0.11") 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..aeda420b8365 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. @@ -22,6 +22,9 @@ import dev.adamko.dokkatoo.DokkatooExtension; import dev.adamko.dokkatoo.formats.DokkatooHtmlPlugin; +import io.gitlab.arturbosch.detekt.Detekt; +import io.gitlab.arturbosch.detekt.DetektPlugin; +import io.gitlab.arturbosch.detekt.extensions.DetektExtension; import org.gradle.api.Project; import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.SourceSetContainer; @@ -40,6 +43,7 @@ *
  • Treat all warnings as errors *
  • Suppress version warnings * + *
  • Detekt plugin is applied to perform static analysis of Kotlin code * * *

    @@ -48,18 +52,23 @@ */ class KotlinConventions { + private static final String JVM_TARGET = "17"; + + private static final String KOTLIN_VERSION = "1.7"; + void apply(Project project) { project.getPlugins().withId("org.jetbrains.kotlin.jvm", (plugin) -> { project.getTasks().withType(KotlinCompile.class, this::configure); project.getPlugins().withType(DokkatooHtmlPlugin.class, (dokkatooPlugin) -> configureDokkatoo(project)); + configureDetekt(project); }); } private void configure(KotlinCompile compile) { KotlinJvmOptions kotlinOptions = compile.getKotlinOptions(); - kotlinOptions.setApiVersion("1.7"); - kotlinOptions.setLanguageVersion("1.7"); - kotlinOptions.setJvmTarget("17"); + kotlinOptions.setApiVersion(KOTLIN_VERSION); + kotlinOptions.setLanguageVersion(KOTLIN_VERSION); + kotlinOptions.setJvmTarget(JVM_TARGET); kotlinOptions.setAllWarningsAsErrors(true); List freeCompilerArgs = new ArrayList<>(kotlinOptions.getFreeCompilerArgs()); freeCompilerArgs.add("-Xsuppress-version-warnings"); @@ -91,4 +100,11 @@ private void configureDokkatoo(Project project) { }); } + private void configureDetekt(Project project) { + project.getPlugins().apply(DetektPlugin.class); + DetektExtension detekt = project.getExtensions().getByType(DetektExtension.class); + detekt.getConfig().setFrom(project.getRootProject().file("src/detekt/config.yml")); + project.getTasks().withType(Detekt.class).configureEach((task) -> task.setJvmTarget(JVM_TARGET)); + } + } 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 18b2aa972579..2a4efd369c31 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 @@ -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. @@ -69,4 +69,5 @@ class MyCloudFoundryConfiguration { context.addServlet("cloudfoundry", servlet).addMapping("/*") } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyReactiveCloudFoundryConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyReactiveCloudFoundryConfiguration.kt index 71e748ef4a76..8d2bde57e5c2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyReactiveCloudFoundryConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/cloudfoundry/customcontextpath/MyReactiveCloudFoundryConfiguration.kt @@ -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. @@ -51,3 +51,4 @@ class MyReactiveCloudFoundryConfiguration { } } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/reactivehealthindicators/MyReactiveHealthIndicator.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/reactivehealthindicators/MyReactiveHealthIndicator.kt index ac8921719a43..cf8f383ac999 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/reactivehealthindicators/MyReactiveHealthIndicator.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/reactivehealthindicators/MyReactiveHealthIndicator.kt @@ -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. @@ -37,4 +37,5 @@ class MyReactiveHealthIndicator : ReactiveHealthIndicator { return /**/ null } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/writingcustomhealthindicators/MyHealthIndicator.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/writingcustomhealthindicators/MyHealthIndicator.kt index c200b001fec1..caa83712bf7b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/writingcustomhealthindicators/MyHealthIndicator.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/health/writingcustomhealthindicators/MyHealthIndicator.kt @@ -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. @@ -36,4 +36,5 @@ class MyHealthIndicator : HealthIndicator { return /**/ 0 } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/CustomData.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/CustomData.kt index a6e467b6eed4..9393c3e041a6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/CustomData.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/CustomData.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.actuator.endpoints.implementingcustom -class CustomData(val name: String, val counter: Int) \ No newline at end of file +class CustomData(val name: String, val counter: Int) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/MyEndpoint.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/MyEndpoint.kt index 4b0991857d89..d3b439c63802 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/MyEndpoint.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/implementingcustom/MyEndpoint.kt @@ -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. @@ -37,4 +37,5 @@ class MyEndpoint { // injects "test" and 42 } // end::write[] -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/info/writingcustominfocontributors/MyInfoContributor.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/info/writingcustominfocontributors/MyInfoContributor.kt index e8de417203a9..1962dd934f92 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/info/writingcustominfocontributors/MyInfoContributor.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/info/writingcustominfocontributors/MyInfoContributor.kt @@ -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,4 +28,5 @@ class MyInfoContributor : InfoContributor { builder.withDetail("example", Collections.singletonMap("key", "value")) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/exposeall/MySecurityConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/exposeall/MySecurityConfiguration.kt index 99247e905298..4990de1c0d30 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/exposeall/MySecurityConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/exposeall/MySecurityConfiguration.kt @@ -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. @@ -34,3 +34,4 @@ class MySecurityConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/typical/MySecurityConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/typical/MySecurityConfiguration.kt index ef01473d10c8..6ad1209eaa64 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/typical/MySecurityConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/endpoints/security/typical/MySecurityConfiguration.kt @@ -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. @@ -36,3 +36,4 @@ class MySecurityConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/customizing/MyMetricsFilterConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/customizing/MyMetricsFilterConfiguration.kt index ad874515a5e4..52f176c6f217 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/customizing/MyMetricsFilterConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/customizing/MyMetricsFilterConfiguration.kt @@ -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,4 +28,5 @@ class MyMetricsFilterConfiguration { return MeterFilter.renameTag("com.example", "mytag.region", "mytag.area") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/graphite/MyGraphiteConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/graphite/MyGraphiteConfiguration.kt index db4d88a602ee..57153703d597 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/graphite/MyGraphiteConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/graphite/MyGraphiteConfiguration.kt @@ -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. @@ -36,4 +36,5 @@ class MyGraphiteConfiguration { return /**/ HierarchicalNameMapper.DEFAULT.toHierarchicalName(id, convention) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/jmx/MyJmxConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/jmx/MyJmxConfiguration.kt index 694d70cbffd6..25a3b7362874 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/jmx/MyJmxConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/export/jmx/MyJmxConfiguration.kt @@ -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. @@ -37,4 +37,5 @@ class MyJmxConfiguration { return /**/ HierarchicalNameMapper.DEFAULT.toHierarchicalName(id, convention) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/commontags/MyMeterRegistryConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/commontags/MyMeterRegistryConfiguration.kt index 708529b4a7bf..a7ae62f1a6c4 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/commontags/MyMeterRegistryConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/commontags/MyMeterRegistryConfiguration.kt @@ -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. @@ -31,4 +31,5 @@ class MyMeterRegistryConfiguration { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/specifictype/MyMeterRegistryConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/specifictype/MyMeterRegistryConfiguration.kt index 25ce06c220dd..11c8a575d894 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/specifictype/MyMeterRegistryConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/gettingstarted/specifictype/MyMeterRegistryConfiguration.kt @@ -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. @@ -37,4 +37,5 @@ class MyMeterRegistryConfiguration { return /**/ NamingConvention.snakeCase.name(name, type, baseUnit) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Dictionary.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Dictionary.kt index f91ed3378708..3d8b1ab5bb97 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Dictionary.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Dictionary.kt @@ -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. @@ -27,4 +27,5 @@ internal class Dictionary { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyBean.kt index 4875a310895a..694e63e36b1a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyBean.kt @@ -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. @@ -30,4 +30,5 @@ class MyBean(registry: MeterRegistry) { registry.gauge("dictionary.size", Tags.empty(), dictionary.words.size) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyMeterBinderConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyMeterBinderConfiguration.kt index 3af700261bd3..e57cd7a7ceb1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyMeterBinderConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/MyMeterBinderConfiguration.kt @@ -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. @@ -29,4 +29,5 @@ class MyMeterBinderConfiguration { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Queue.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Queue.kt index c51fd54f7afa..3332b03faa18 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Queue.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/registeringcustom/Queue.kt @@ -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. @@ -22,4 +22,5 @@ class Queue { return 5 } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/CustomCommandTagsProvider.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/CustomCommandTagsProvider.kt index b6353022db2d..0a50e1eb600e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/CustomCommandTagsProvider.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/CustomCommandTagsProvider.kt @@ -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. @@ -27,3 +27,4 @@ class CustomCommandTagsProvider : MongoCommandTagsProvider { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/MyCommandTagsProviderConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/MyCommandTagsProviderConfiguration.kt index 91bcab1c9608..8126747feeec 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/MyCommandTagsProviderConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/command/MyCommandTagsProviderConfiguration.kt @@ -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. @@ -29,3 +29,4 @@ class MyCommandTagsProviderConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/CustomConnectionPoolTagsProvider.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/CustomConnectionPoolTagsProvider.kt index 8a766cd5c243..831c17368970 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/CustomConnectionPoolTagsProvider.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/CustomConnectionPoolTagsProvider.kt @@ -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. @@ -27,3 +27,4 @@ class CustomConnectionPoolTagsProvider : MongoConnectionPoolTagsProvider { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/MyConnectionPoolTagsProviderConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/MyConnectionPoolTagsProviderConfiguration.kt index 0c56242fa3a9..c29588066672 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/MyConnectionPoolTagsProviderConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/actuator/metrics/supported/mongodb/connectionpool/MyConnectionPoolTagsProviderConfiguration.kt @@ -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. @@ -29,3 +29,4 @@ class MyConnectionPoolTagsProviderConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/buildtoolplugins/otherbuildsystems/examplerepackageimplementation/MyBuildTool.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/buildtoolplugins/otherbuildsystems/examplerepackageimplementation/MyBuildTool.kt index 322901134188..f60116c1ea07 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/buildtoolplugins/otherbuildsystems/examplerepackageimplementation/MyBuildTool.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/buildtoolplugins/otherbuildsystems/examplerepackageimplementation/MyBuildTool.kt @@ -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. @@ -46,4 +46,5 @@ class MyBuildTool { return /**/ null } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyMessagingProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyMessagingProperties.kt index a87d99e960d0..918fa7323216 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyMessagingProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyMessagingProperties.kt @@ -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. @@ -29,4 +29,5 @@ class MyMessagingProperties( enum class ContainerType { SIMPLE, DIRECT } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyServerProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyServerProperties.kt index 11b8cf82b1f9..0f9403cd48ee 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyServerProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/MyServerProperties.kt @@ -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. @@ -34,4 +34,5 @@ class MyServerProperties( /** * Port to listen to. */ - var port: Int = 9797) \ No newline at end of file + var port: Int = 9797) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/nestedproperties/MyServerProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/nestedproperties/MyServerProperties.kt index d2119679086b..3ab08c709626 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/nestedproperties/MyServerProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/annotationprocessor/automaticmetadatageneration/nestedproperties/MyServerProperties.kt @@ -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. @@ -25,4 +25,5 @@ class MyServerProperties( class Host(val ip: String, val port: Int = 0) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/format/property/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/format/property/MyProperties.kt index 6e3297b43b59..ec3fcb56ff52 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/format/property/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/format/property/MyProperties.kt @@ -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. @@ -26,4 +26,5 @@ class MyProperties(val name: String?) { @Deprecated("") @DeprecatedConfigurationProperty(replacement = "my.app.name") get @Deprecated("") set -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/manualhints/valuehint/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/manualhints/valuehint/MyProperties.kt index 8eb8609afff0..0f3113bc1145 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/manualhints/valuehint/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/configurationmetadata/manualhints/valuehint/MyProperties.kt @@ -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. @@ -19,4 +19,5 @@ package org.springframework.boot.docs.configurationmetadata.manualhints.valuehin import org.springframework.boot.context.properties.ConfigurationProperties @ConfigurationProperties("my") -class MyProperties(val contexts: Map) \ No newline at end of file +class MyProperties(val contexts: Map) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/cassandra/connecting/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/cassandra/connecting/MyBean.kt index 51bfa19d8846..5ff916968b42 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/cassandra/connecting/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/cassandra/connecting/MyBean.kt @@ -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,4 +28,5 @@ class MyBean(private val template: CassandraTemplate) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.kt index 460b1e5026b5..23eb2e5d26fc 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/CouchbaseProperties.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.data.nosql.couchbase.repositories -class CouchbaseProperties \ No newline at end of file +class CouchbaseProperties + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.kt index 36c1fec67b93..3d458f13754b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyBean.kt @@ -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,4 +28,5 @@ class MyBean(private val template: CouchbaseTemplate) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.kt index 1d06d2f77fa4..9052fcd3291b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyConverter.kt @@ -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. @@ -24,4 +24,5 @@ internal class MyConverter : Converter { return true } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.kt index e2c031d21b17..2e2d3de32efa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/couchbase/repositories/MyCouchbaseConfiguration.kt @@ -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. @@ -30,4 +30,5 @@ class MyCouchbaseConfiguration { return CouchbaseCustomConversions(Arrays.asList(MyConverter())) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/MyBean.kt index 001ee654ce00..ef012f37bc0e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/MyBean.kt @@ -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. @@ -27,4 +27,5 @@ class MyBean(private val template: org.springframework.data.elasticsearch.client } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/User.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/User.kt index 69bd871dec8e..249ef835d21e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/User.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/elasticsearch/connectingusingspringdata/User.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.data.nosql.elasticsearch.connectingusingspringdata -class User \ No newline at end of file +class User + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/MyBean.kt index dd6928eee5c1..8ce315429234 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/MyBean.kt @@ -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,4 +28,5 @@ class MyBean(private val template: LdapTemplate) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/User.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/User.kt index dea5398c5c7c..4c3ff7efb052 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/User.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/ldap/repositories/User.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.data.nosql.ldap.repositories -class User \ No newline at end of file +class User + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/connecting/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/connecting/MyBean.kt index e22d2fac0c3e..abf140f7666c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/connecting/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/connecting/MyBean.kt @@ -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. @@ -31,4 +31,5 @@ class MyBean(private val mongo: MongoDatabaseFactory) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/City.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/City.kt index 56b09979bca2..fd823238708e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/City.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/City.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.data.nosql.mongodb.repositories -class City \ No newline at end of file +class City + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/CityRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/CityRepository.kt index 537b7339998e..011bbda07427 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/CityRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/repositories/CityRepository.kt @@ -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. @@ -24,4 +24,5 @@ interface CityRepository : Repository { fun findAll(pageable: Pageable?): Page? fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): City? -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/template/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/template/MyBean.kt index 2e41706145ec..952383ff7a17 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/template/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/mongodb/template/MyBean.kt @@ -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. @@ -30,4 +30,5 @@ class MyBean(private val mongoTemplate: MongoTemplate) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/connecting/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/connecting/MyBean.kt index f9386ae855f4..169a346fd014 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/connecting/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/connecting/MyBean.kt @@ -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. @@ -16,7 +16,9 @@ package org.springframework.boot.docs.data.nosql.neo4j.connecting -import org.neo4j.driver.* +import org.neo4j.driver.Driver +import org.neo4j.driver.TransactionContext +import org.neo4j.driver.Values import org.springframework.stereotype.Component @Component @@ -35,4 +37,5 @@ class MyBean(private val driver: Driver) { } } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/City.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/City.kt index 50c0329d4cad..74377784627a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/City.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/City.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.data.nosql.neo4j.repositories -class City \ No newline at end of file +class City + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt index a2a6a645eeab..b8317d0255aa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/CityRepository.kt @@ -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. @@ -23,4 +23,5 @@ interface CityRepository : Neo4jRepository { fun findOneByNameAndState(name: String?, state: String?): Optional? -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/MyNeo4jConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/MyNeo4jConfiguration.kt index ae0eccfd8501..cfa2adb565cc 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/MyNeo4jConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/neo4j/repositories/MyNeo4jConfiguration.kt @@ -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. @@ -30,4 +30,5 @@ class MyNeo4jConfiguration { databaseNameProvider: ReactiveDatabaseSelectionProvider): ReactiveNeo4jTransactionManager { return ReactiveNeo4jTransactionManager(driver, databaseNameProvider) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/redis/connecting/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/redis/connecting/MyBean.kt index 10c5ad1af4cd..b6851ac51540 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/redis/connecting/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/nosql/redis/connecting/MyBean.kt @@ -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,4 +28,5 @@ class MyBean(private val template: StringRedisTemplate) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/h2webconsole/springsecurity/DevProfileSecurityConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/h2webconsole/springsecurity/DevProfileSecurityConfiguration.kt index 809ecda77dd3..43c3ce43a33c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/h2webconsole/springsecurity/DevProfileSecurityConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/h2webconsole/springsecurity/DevProfileSecurityConfiguration.kt @@ -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. @@ -44,4 +44,5 @@ class DevProfileSecurityConfiguration { } // end::customizer[] -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbcclient/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbcclient/MyBean.kt index 02cd7243bd7d..fb881f0dbc3e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbcclient/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbcclient/MyBean.kt @@ -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. @@ -27,3 +27,4 @@ class MyBean(private val jdbcClient: JdbcClient) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbctemplate/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbctemplate/MyBean.kt index e66f4fa114a2..0d57ea875782 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbctemplate/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jdbctemplate/MyBean.kt @@ -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. @@ -26,4 +26,5 @@ class MyBean(private val jdbcTemplate: JdbcTemplate) { jdbcTemplate.execute("delete from customer") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/MyBean.kt index 68b8a6997046..dd7c5bb14833 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/MyBean.kt @@ -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. @@ -31,4 +31,5 @@ class MyBean(private val create: DSLContext) { } // end::method[] -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/Tables.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/Tables.kt index fe7a924365f0..0830647b39ec 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/Tables.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jooq/dslcontext/Tables.kt @@ -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. @@ -33,4 +33,5 @@ object Tables { abstract class TAuthorRecord(table: Table?) : TableRecordImpl(table) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/City.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/City.kt index bb3366716f48..ff424a6b6b5c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/City.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/City.kt @@ -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. @@ -50,4 +50,5 @@ class City : Serializable { this.state = state } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/Country.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/Country.kt index 8108ab1cdf0f..32ac657fa56b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/Country.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/entityclasses/Country.kt @@ -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. @@ -34,4 +34,5 @@ class Country : Serializable { @Column(nullable = false) var name: String? = null -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/enversrepositories/CountryRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/enversrepositories/CountryRepository.kt index 3a3e69a85623..13a902fd2fb7 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/enversrepositories/CountryRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/enversrepositories/CountryRepository.kt @@ -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,4 +28,5 @@ interface CountryRepository : fun findAll(pageable: Pageable?): Page? -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/repositories/CityRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/repositories/CityRepository.kt index a247e5f000c5..77940f1d88db 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/repositories/CityRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/jpaandspringdata/repositories/CityRepository.kt @@ -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. @@ -27,4 +27,5 @@ interface CityRepository : Repository { fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): City? -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyPostgresR2dbcConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyPostgresR2dbcConfiguration.kt index 6fac519e1089..9f30cc8150b2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyPostgresR2dbcConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyPostgresR2dbcConfiguration.kt @@ -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. @@ -34,4 +34,5 @@ class MyPostgresR2dbcConfiguration { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyR2dbcConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyR2dbcConfiguration.kt index f1cef3e46945..600c14d90227 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyR2dbcConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/MyR2dbcConfiguration.kt @@ -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. @@ -31,4 +31,5 @@ class MyR2dbcConfiguration { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/City.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/City.kt index 4134eaa2d054..b1cb2f992085 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/City.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/City.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.data.sql.r2dbc.repositories -class City \ No newline at end of file +class City + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/CityRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/CityRepository.kt index 2454ae7c2d33..616058a65801 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/CityRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/repositories/CityRepository.kt @@ -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. @@ -23,4 +23,5 @@ interface CityRepository : Repository { fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): Mono? -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/usingdatabaseclient/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/usingdatabaseclient/MyBean.kt index 8e8ca16f2201..5866dc99ce79 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/usingdatabaseclient/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/data/sql/r2dbc/usingdatabaseclient/MyBean.kt @@ -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. @@ -29,4 +29,5 @@ class MyBean(private val databaseClient: DatabaseClient) { } // @fold:off -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/devtools/restart/disable/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/devtools/restart/disable/MyApplication.kt index ba505d49565f..c601335a2bd1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/devtools/restart/disable/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/devtools/restart/disable/MyApplication.kt @@ -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. @@ -26,4 +26,5 @@ class MyApplication fun main(args: Array) { System.setProperty("spring.devtools.restart.enabled", "false") runApplication(*args) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/MyAutoConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/MyAutoConfiguration.kt index 2108ffcd7078..d0f0b3d37baa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/MyAutoConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/MyAutoConfiguration.kt @@ -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. @@ -30,3 +30,4 @@ class MyAutoConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/SomeService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/SomeService.kt index 95fa05f6a72a..1f7aae0235c2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/SomeService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/beanconditions/SomeService.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.features.developingautoconfiguration.conditionannotations.beanconditions -class SomeService \ No newline at end of file +class SomeService + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/MyAutoConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/MyAutoConfiguration.kt index 8e452b1a4410..4dde71fd7170 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/MyAutoConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/MyAutoConfiguration.kt @@ -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. @@ -38,4 +38,5 @@ class MyAutoConfiguration { } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/SomeService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/SomeService.kt index e83096ff78fc..05dcc2b14ad3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/SomeService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/conditionannotations/classconditions/SomeService.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.features.developingautoconfiguration.conditionannotations.classconditions -class SomeService \ No newline at end of file +class SomeService + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/customstarter/configurationkeys/AcmeProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/customstarter/configurationkeys/AcmeProperties.kt index 74d9f77b7f27..33890c6caddd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/customstarter/configurationkeys/AcmeProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/customstarter/configurationkeys/AcmeProperties.kt @@ -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. @@ -31,3 +31,4 @@ class AcmeProperties( * Timeout for establishing a connection to the acme server. */ var loginTimeout:Duration = Duration.ofSeconds(3)) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyConditionEvaluationReportingTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyConditionEvaluationReportingTests.kt index 2e3678c79036..ad9604a9a9e7 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyConditionEvaluationReportingTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyConditionEvaluationReportingTests.kt @@ -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. @@ -32,4 +32,5 @@ class MyConditionEvaluationReportingTests { .run { context: AssertableApplicationContext? -> } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyService.kt index ad7a77a6e360..af35d6155540 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyService.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.features.developingautoconfiguration.testing -class MyService(val name: String) \ No newline at end of file +class MyService(val name: String) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfiguration.kt index 85ed26060970..4456da86d938 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfiguration.kt @@ -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. @@ -42,4 +42,5 @@ class MyServiceAutoConfiguration { var name = "test" } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfigurationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfigurationTests.kt index 7c917d3b4b04..4f82d25462a2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfigurationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/developingautoconfiguration/testing/MyServiceAutoConfigurationTests.kt @@ -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. @@ -75,3 +75,4 @@ internal open class MyServiceAutoConfigurationTests { } // end::test-user-config[] } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/MyBean.kt index 246ebd26d7f2..2afabaed3d9c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/MyBean.kt @@ -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. @@ -27,4 +27,5 @@ class MyBean { // ... -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/MyProperties.kt index e117b03aa291..b9f84ca46993 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/MyProperties.kt @@ -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,3 +28,4 @@ class MyProperties(val enabled: Boolean, val remoteAddress: InetAddress, @param:DefaultValue("USER") val roles: List) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/nonnull/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/nonnull/MyProperties.kt index 24cbefe6cddf..e56307594d7f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/nonnull/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/nonnull/MyProperties.kt @@ -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. @@ -30,3 +30,4 @@ class MyProperties(val enabled: Boolean, val remoteAddress: InetAddress, } // end::code[] + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/primaryconstructor/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/primaryconstructor/MyProperties.kt index 7428e2f0c3f0..de8b8d33c04a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/primaryconstructor/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/constructorbinding/primaryconstructor/MyProperties.kt @@ -30,3 +30,4 @@ class MyProperties() { // @fold:off } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/constructorbinding/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/constructorbinding/MyProperties.kt index ab21914d35a4..14885473ed7b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/constructorbinding/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/constructorbinding/MyProperties.kt @@ -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. @@ -25,3 +25,4 @@ import org.springframework.util.unit.DataUnit @ConfigurationProperties("my") class MyProperties(@param:DataSizeUnit(DataUnit.MEGABYTES) @param:DefaultValue("2MB") val bufferSize: DataSize, @param:DefaultValue("512B") val sizeThreshold: DataSize) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/javabeanbinding/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/javabeanbinding/MyProperties.kt index ed99d7214558..2b00504912d9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/javabeanbinding/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/datasizes/javabeanbinding/MyProperties.kt @@ -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. @@ -29,4 +29,5 @@ class MyProperties { var sizeThreshold = DataSize.ofBytes(512) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/constructorbinding/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/constructorbinding/MyProperties.kt index 5ca0f618d12d..5fb7b42877ff 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/constructorbinding/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/constructorbinding/MyProperties.kt @@ -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. @@ -25,3 +25,4 @@ import java.time.temporal.ChronoUnit @ConfigurationProperties("my") class MyProperties(@param:DurationUnit(ChronoUnit.SECONDS) @param:DefaultValue("30s") val sessionTimeout: Duration, @param:DefaultValue("1000ms") val readTimeout: Duration) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/javabeanbinding/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/javabeanbinding/MyProperties.kt index d05158cd9c54..65dfb3d0646b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/javabeanbinding/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/conversion/durations/javabeanbinding/MyProperties.kt @@ -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. @@ -29,4 +29,5 @@ class MyProperties { var readTimeout = Duration.ofMillis(1000) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyApplication.kt index 7b28eed2c954..1e7a33519e54 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyApplication.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.boot.context.properties.ConfigurationPropertiesScan @SpringBootApplication @ConfigurationPropertiesScan("com.example.app", "com.example.another") class MyApplication + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyConfiguration.kt index d944fd77057d..ca532f38bbcc 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/MyConfiguration.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.context.annotation.Configuration @Configuration(proxyBeanMethods = false) @EnableConfigurationProperties(SomeProperties::class) class MyConfiguration + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/SomeProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/SomeProperties.kt index 5c209f13cbcf..d5c9281d54dd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/SomeProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/enablingannotatedtypes/SomeProperties.kt @@ -3,4 +3,5 @@ package org.springframework.boot.docs.features.externalconfig.typesafeconfigurat import org.springframework.boot.context.properties.ConfigurationProperties @ConfigurationProperties("some.properties") -class SomeProperties \ No newline at end of file +class SomeProperties + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/javabeanbinding/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/javabeanbinding/MyProperties.kt index 782923110758..28df3fa114e1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/javabeanbinding/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/javabeanbinding/MyProperties.kt @@ -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. @@ -39,3 +39,4 @@ class MyProperties { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyPojo.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyPojo.kt index 4a92d41b4ff6..58f655df2674 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyPojo.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyPojo.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.mergingcomplextypes.list -class MyPojo \ No newline at end of file +class MyPojo + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyProperties.kt index aaf273b66d9a..675f173575d8 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/list/MyProperties.kt @@ -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. @@ -23,4 +23,5 @@ class MyProperties { val list: List = ArrayList() -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyPojo.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyPojo.kt index 28fcfd171a2d..b12c0bbbb5fd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyPojo.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyPojo.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.mergingcomplextypes.map -class MyPojo \ No newline at end of file +class MyPojo + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyProperties.kt index 5bebf61b2a80..3b41dbcb7e8f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/mergingcomplextypes/map/MyProperties.kt @@ -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. @@ -23,4 +23,5 @@ class MyProperties { val map: Map = LinkedHashMap() -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/MyPersonProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/MyPersonProperties.kt index 6be11c0365ff..b0c8a254cddf 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/MyPersonProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/MyPersonProperties.kt @@ -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. @@ -23,4 +23,5 @@ class MyPersonProperties { var firstName: String? = null -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/mapsfromenvironmentvariables/MyMapsProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/mapsfromenvironmentvariables/MyMapsProperties.kt index f58251e968cb..98032e98b258 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/mapsfromenvironmentvariables/MyMapsProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/relaxedbinding/mapsfromenvironmentvariables/MyMapsProperties.kt @@ -8,3 +8,4 @@ class MyMapsProperties { val values: Map = HashMap() } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/AnotherComponent.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/AnotherComponent.kt index 1ecae2e61b66..a66b11a25835 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/AnotherComponent.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/AnotherComponent.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.thirdpartyconfiguration -class AnotherComponent \ No newline at end of file +class AnotherComponent + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/ThirdPartyConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/ThirdPartyConfiguration.kt index ae4039cd62c9..831b799d7de1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/ThirdPartyConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/thirdpartyconfiguration/ThirdPartyConfiguration.kt @@ -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,3 +28,4 @@ class ThirdPartyConfiguration { fun anotherComponent(): AnotherComponent = AnotherComponent() } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyProperties.kt index 82af12fd1b8c..a4b24934ffc9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyProperties.kt @@ -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. @@ -21,4 +21,5 @@ class MyProperties { val remoteAddress: Any? get() = null -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyService.kt index 36fa79338c0d..a9548fa05321 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/usingannotatedtypes/MyService.kt @@ -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. @@ -29,4 +29,5 @@ class MyService(val properties: MyProperties) { // ... -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/MyProperties.kt index 05d12657342a..025ec1551422 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/MyProperties.kt @@ -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. @@ -27,4 +27,5 @@ class MyProperties { var remoteAddress: @NotNull InetAddress? = null -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/nested/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/nested/MyProperties.kt index 153bf9867f08..90322ecf9311 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/nested/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validate/nested/MyProperties.kt @@ -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. @@ -35,4 +35,5 @@ class MyProperties { var username: @NotEmpty String? = null } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/MyProperties.kt index 92e34b333390..5608c8f211ab 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/MyProperties.kt @@ -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,3 +28,4 @@ class MyProperties { var remoteAddress: @NotNull InetAddress? = null } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/nested/MyProperties.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/nested/MyProperties.kt index b015ba73d30a..11139834b6bd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/nested/MyProperties.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/externalconfig/typesafeconfigurationproperties/validation/nested/MyProperties.kt @@ -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. @@ -40,3 +40,4 @@ class MyProperties { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyJsonComponent.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyJsonComponent.kt index b47a0f01d6a2..d64f698f0dec 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyJsonComponent.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyJsonComponent.kt @@ -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. @@ -51,4 +51,5 @@ class MyJsonComponent { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyObject.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyObject.kt index 71d1cb4f25c9..7156c5e62d3b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyObject.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/MyObject.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.features.json.jackson.customserializersanddeserializers class MyObject(val name: String = "", val age: Int = 0) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyJsonComponent.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyJsonComponent.kt index d0a47f1167c6..14a73fecef18 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyJsonComponent.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyJsonComponent.kt @@ -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. @@ -49,3 +49,4 @@ class MyJsonComponent { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyObject.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyObject.kt index e049491df50e..cf448403ac70 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyObject.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/json/jackson/customserializersanddeserializers/object/MyObject.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.features.json.jackson.customserializersanddeserializers.`object` class MyObject(val name: String = "", val age: Int = 0) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/profiles/ProductionConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/profiles/ProductionConfiguration.kt index 927b40b26538..271dfb295636 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/profiles/ProductionConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/profiles/ProductionConfiguration.kt @@ -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. @@ -25,4 +25,5 @@ class ProductionConfiguration { // ... -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/MyApplication.kt index 9825f394ee07..51bc3910da12 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationarguments/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationarguments/MyBean.kt index aa430a995097..4f810af9c90c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationarguments/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationarguments/MyBean.kt @@ -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. @@ -31,4 +31,5 @@ class MyBean(args: ApplicationArguments) { // if run with "--debug logfile.txt" prints ["logfile.txt"] } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyLocalCacheVerifier.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyLocalCacheVerifier.kt index a57b53b57a47..8a4add9eb66e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyLocalCacheVerifier.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyLocalCacheVerifier.kt @@ -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. @@ -32,4 +32,5 @@ class MyLocalCacheVerifier(private val eventPublisher: ApplicationEventPublisher } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyReadinessStateExporter.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyReadinessStateExporter.kt index ff6080f0dccc..e18cc18a5042 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyReadinessStateExporter.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationavailability/managing/MyReadinessStateExporter.kt @@ -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. @@ -39,4 +39,5 @@ class MyReadinessStateExporter { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationexit/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationexit/MyApplication.kt index bd604c0840d6..67607813dcfa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationexit/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/applicationexit/MyApplication.kt @@ -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. @@ -36,3 +36,4 @@ fun main(args: Array) { exitProcess(SpringApplication.exit( runApplication(*args))) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/commandlinerunner/MyCommandLineRunner.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/commandlinerunner/MyCommandLineRunner.kt index 3c65b842cbe5..17c86aafda54 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/commandlinerunner/MyCommandLineRunner.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/commandlinerunner/MyCommandLineRunner.kt @@ -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. @@ -26,4 +26,5 @@ class MyCommandLineRunner : CommandLineRunner { // Do something... } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/customizingspringapplication/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/customizingspringapplication/MyApplication.kt index cba1f1bf241a..5f2e9d0b5005 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/customizingspringapplication/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/customizingspringapplication/MyApplication.kt @@ -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. @@ -27,4 +27,5 @@ fun main(args: Array) { runApplication(*args) { setBannerMode(Banner.Mode.OFF) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/fluentbuilderapi/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/fluentbuilderapi/MyApplication.kt index fbbb1338a003..7393d13b6286 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/fluentbuilderapi/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/fluentbuilderapi/MyApplication.kt @@ -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. @@ -34,4 +34,5 @@ class MyApplication { internal class Application -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/startuptracking/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/startuptracking/MyApplication.kt index eaff880c585d..e56dc7d4629e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/startuptracking/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/springapplication/startuptracking/MyApplication.kt @@ -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. @@ -27,4 +27,5 @@ fun main(args: Array) { runApplication(*args) { applicationStartup = BufferingApplicationStartup(2048) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/ssl/bundles/MyComponent.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/ssl/bundles/MyComponent.kt index a9b958039b72..80bf9e21f979 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/ssl/bundles/MyComponent.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/ssl/bundles/MyComponent.kt @@ -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. @@ -29,3 +29,4 @@ class MyComponent(sslBundles: SslBundles) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/devtools/MyContainersConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/devtools/MyContainersConfiguration.kt index 44a21e69418d..ae90a239da72 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/devtools/MyContainersConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/devtools/MyContainersConfiguration.kt @@ -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. @@ -32,3 +32,4 @@ class MyContainersConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/dynamicproperties/MyContainersConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/dynamicproperties/MyContainersConfiguration.kt index 04959303fcad..32a5fbf04485 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/dynamicproperties/MyContainersConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/dynamicproperties/MyContainersConfiguration.kt @@ -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. @@ -33,3 +33,4 @@ class MyContainersConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/importingcontainerdeclarations/MyContainersConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/importingcontainerdeclarations/MyContainersConfiguration.kt index 9c1776c0a4d1..8eebb85c2540 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/importingcontainerdeclarations/MyContainersConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/importingcontainerdeclarations/MyContainersConfiguration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2023 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -23,3 +23,4 @@ import org.springframework.boot.testcontainers.context.ImportTestcontainers @TestConfiguration(proxyBeanMethods = false) @ImportTestcontainers(MyContainers::class) class MyContainersConfiguration + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/MyApplication.kt index 425368d5604a..2e774d21780c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/TestMyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/TestMyApplication.kt index 40d1e091e166..0794f2e0212d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/TestMyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/launch/TestMyApplication.kt @@ -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. @@ -21,3 +21,4 @@ import org.springframework.boot.fromApplication fun main(args: Array) { fromApplication().run(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyApplication.kt index 05405fb0063d..389adb8aec72 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyContainersConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyContainersConfiguration.kt index b5d8f291b57c..4e4a9eb6c925 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyContainersConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/MyContainersConfiguration.kt @@ -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. @@ -31,3 +31,4 @@ class MyContainersConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/TestMyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/TestMyApplication.kt index 1f397fba6e4b..30e50326fc31 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/TestMyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/features/testcontainers/atdevelopmenttime/test/TestMyApplication.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.boot.with fun main(args: Array) { fromApplication().with(MyContainersConfiguration::class).run(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/gettingstarted/firstapplication/code/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/gettingstarted/firstapplication/code/MyApplication.kt index a4ca07d621ae..df4c8a6ad2c6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/gettingstarted/firstapplication/code/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/gettingstarted/firstapplication/code/MyApplication.kt @@ -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. @@ -32,4 +32,5 @@ class MyApplication { fun main(args: Array) { runApplication(*args) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MetricsHealthMicrometerExport.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MetricsHealthMicrometerExport.kt index cecce3bd5dde..a37aa352c5e5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MetricsHealthMicrometerExport.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MetricsHealthMicrometerExport.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.actuator.maphealthindicatorstometrics class MetricsHealthMicrometerExport + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MyHealthMetricsExportConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MyHealthMetricsExportConfiguration.kt index 38e8f94f4c07..529ec46e9732 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MyHealthMetricsExportConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/actuator/maphealthindicatorstometrics/MyHealthMetricsExportConfiguration.kt @@ -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. @@ -40,3 +40,4 @@ class MyHealthMetricsExportConfiguration(registry: MeterRegistry, healthEndpoint } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/application/customizetheenvironmentorapplicationcontext/MyEnvironmentPostProcessor.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/application/customizetheenvironmentorapplicationcontext/MyEnvironmentPostProcessor.kt index 46457d1da1a7..2dc7d802b6da 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/application/customizetheenvironmentorapplicationcontext/MyEnvironmentPostProcessor.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/application/customizetheenvironmentorapplicationcontext/MyEnvironmentPostProcessor.kt @@ -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. @@ -46,3 +46,4 @@ class MyEnvironmentPostProcessor : EnvironmentPostProcessor { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configureacomponentthatisusedbyjpa/ElasticsearchEntityManagerFactoryDependsOnPostProcessor.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configureacomponentthatisusedbyjpa/ElasticsearchEntityManagerFactoryDependsOnPostProcessor.kt index e705d82f99a2..8a682e21557f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configureacomponentthatisusedbyjpa/ElasticsearchEntityManagerFactoryDependsOnPostProcessor.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configureacomponentthatisusedbyjpa/ElasticsearchEntityManagerFactoryDependsOnPostProcessor.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.stereotype.Component @Component class ElasticsearchEntityManagerFactoryDependsOnPostProcessor : EntityManagerFactoryDependsOnPostProcessor("elasticsearchClient") + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/builder/MyDataSourceConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/builder/MyDataSourceConfiguration.kt index 89485f5c0820..e4118d120e92 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/builder/MyDataSourceConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/builder/MyDataSourceConfiguration.kt @@ -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. @@ -33,3 +33,4 @@ class MyDataSourceConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/configurable/MyDataSourceConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/configurable/MyDataSourceConfiguration.kt index 94e1a05a5af5..5a1e7c373f75 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/configurable/MyDataSourceConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/configurable/MyDataSourceConfiguration.kt @@ -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. @@ -40,3 +40,4 @@ class MyDataSourceConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/MyDataSourceConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/MyDataSourceConfiguration.kt index da7e2d11fa37..8a899434d998 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/MyDataSourceConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/MyDataSourceConfiguration.kt @@ -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. @@ -30,3 +30,4 @@ class MyDataSourceConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/SomeDataSource.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/SomeDataSource.kt index cc1136d84201..de4afdeded06 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/SomeDataSource.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/custom/SomeDataSource.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.dataaccess.configurecustomdatasource.custom class SomeDataSource + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/simple/MyDataSourceConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/simple/MyDataSourceConfiguration.kt index 42edfe2ca4f3..96a6fbb93d91 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/simple/MyDataSourceConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurecustomdatasource/simple/MyDataSourceConfiguration.kt @@ -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. @@ -32,3 +32,4 @@ class MyDataSourceConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/spring/MyHibernateConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/spring/MyHibernateConfiguration.kt index c102def20cc9..5237975d05f3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/spring/MyHibernateConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/spring/MyHibernateConfiguration.kt @@ -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. @@ -34,3 +34,4 @@ class MyHibernateConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/standard/MyHibernateConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/standard/MyHibernateConfiguration.kt index 4ec13dba01f1..bd959b5eb8c5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/standard/MyHibernateConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatenamingstrategy/standard/MyHibernateConfiguration.kt @@ -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. @@ -29,3 +29,4 @@ internal class MyHibernateConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatesecondlevelcaching/MyHibernateSecondLevelCacheConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatesecondlevelcaching/MyHibernateSecondLevelCacheConfiguration.kt index fc5973da76fb..391f62094368 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatesecondlevelcaching/MyHibernateSecondLevelCacheConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configurehibernatesecondlevelcaching/MyHibernateSecondLevelCacheConfiguration.kt @@ -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. @@ -33,3 +33,4 @@ class MyHibernateSecondLevelCacheConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfiguration.kt index f1a56aaed783..d9d269d485f2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyCompleteDataSourcesConfiguration.kt @@ -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. @@ -53,3 +53,4 @@ class MyCompleteDataSourcesConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfiguration.kt index 96e68325b962..28e5c7e3aaa1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/configuretwodatasources/MyDataSourcesConfiguration.kt @@ -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. @@ -48,3 +48,4 @@ class MyDataSourcesConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/filterscannedentitydefinitions/MyEntityScanConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/filterscannedentitydefinitions/MyEntityScanConfiguration.kt index 4152c9e7c7da..5df920af74c1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/filterscannedentitydefinitions/MyEntityScanConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/filterscannedentitydefinitions/MyEntityScanConfiguration.kt @@ -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. @@ -30,3 +30,4 @@ class MyEntityScanConfiguration { } } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/City.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/City.kt index e9f5f61ee7e3..52bdf30187bf 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/City.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/City.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.dataaccess.separateentitydefinitionsfromspringconfiguration class City + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/MyApplication.kt index a23b49e5a2c4..965067d501aa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/separateentitydefinitionsfromspringconfiguration/MyApplication.kt @@ -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,3 +28,4 @@ class MyApplication { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Customer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Customer.kt index b8bac247643c..8af0bb32acdb 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Customer.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Customer.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.dataaccess.usemultipleentitymanagers class Customer + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/CustomerConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/CustomerConfiguration.kt index 3ae2042a8645..d14f74f6938a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/CustomerConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/CustomerConfiguration.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories @Configuration(proxyBeanMethods = false) @EnableJpaRepositories(basePackageClasses = [Customer::class], entityManagerFactoryRef = "secondEntityManagerFactory") class CustomerConfiguration + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/MyEntityManagerFactoryConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/MyEntityManagerFactoryConfiguration.kt index ef844b3ab3e4..ba8a09146036 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/MyEntityManagerFactoryConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/MyEntityManagerFactoryConfiguration.kt @@ -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. @@ -57,3 +57,4 @@ class MyEntityManagerFactoryConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Order.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Order.kt index 3cafe7769a35..911f3d6e268d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Order.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/Order.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.dataaccess.usemultipleentitymanagers class Order + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/OrderConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/OrderConfiguration.kt index 01aaecea5166..de0368c4cda6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/OrderConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/dataaccess/usemultipleentitymanagers/OrderConfiguration.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.data.jpa.repository.config.EnableJpaRepositories @Configuration(proxyBeanMethods = false) @EnableJpaRepositories(basePackageClasses = [Order::class], entityManagerFactoryRef = "firstEntityManagerFactory") class OrderConfiguration + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/deployment/cloud/cloudfoundry/bindingtoservices/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/deployment/cloud/cloudfoundry/bindingtoservices/MyBean.kt index b411fb883d60..f9c61a82e1ce 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/deployment/cloud/cloudfoundry/bindingtoservices/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/deployment/cloud/cloudfoundry/bindingtoservices/MyBean.kt @@ -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. @@ -31,4 +31,5 @@ class MyBean : EnvironmentAware { // ... -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/httpclients/webclientreactornettycustomization/MyReactorNettyClientConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/httpclients/webclientreactornettycustomization/MyReactorNettyClientConfiguration.kt index 1dac3ab5de0e..3e34c86b55b4 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/httpclients/webclientreactornettycustomization/MyReactorNettyClientConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/httpclients/webclientreactornettycustomization/MyReactorNettyClientConfiguration.kt @@ -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. @@ -40,3 +40,4 @@ class MyReactorNettyClientConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/messaging/disabletransactedjmssession/MyJmsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/messaging/disabletransactedjmssession/MyJmsConfiguration.kt index 83bfb50271bf..b34ccd276b28 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/messaging/disabletransactedjmssession/MyJmsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/messaging/disabletransactedjmssession/MyJmsConfiguration.kt @@ -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. @@ -37,3 +37,4 @@ class MyJmsConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/application/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/application/MyApplication.kt index 24d717a99654..febd9b523ffc 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/application/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/application/MyApplication.kt @@ -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. @@ -30,4 +30,5 @@ object MyApplication { application.run(*args) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/builder/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/builder/MyApplication.kt index ac1cb1e3ddd1..d31839179048 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/builder/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/propertiesandconfiguration/externalizeconfiguration/builder/MyApplication.kt @@ -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. @@ -30,3 +30,4 @@ object MyApplication { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/security/enablehttps/MySecurityConfig.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/security/enablehttps/MySecurityConfig.kt index f326ca88fad5..0a6781d7a2c8 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/security/enablehttps/MySecurityConfig.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/security/enablehttps/MySecurityConfig.kt @@ -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. @@ -32,3 +32,4 @@ class MySecurityConfig { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyController.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyController.kt index 13db5380dada..2b634946aea8 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyController.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyController.kt @@ -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,3 +28,4 @@ class MyController { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyThing.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyThing.kt index ec95ef1e8b50..6e0ccdb0729c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyThing.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writejsonrestservice/MyThing.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.springmvc.writejsonrestservice class MyThing + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writexmlrestservice/MyThing.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writexmlrestservice/MyThing.kt index 22ee4c882f35..46529c7b036d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writexmlrestservice/MyThing.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/springmvc/writexmlrestservice/MyThing.kt @@ -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. @@ -24,3 +24,4 @@ class MyThing { var name: String? = null } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/MySecurityTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/MySecurityTests.kt index efbb12d1205c..cc94fe3ba2f2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/MySecurityTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/MySecurityTests.kt @@ -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. @@ -33,3 +33,4 @@ class MySecurityTests(@Autowired val mvc: MockMvc) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/UserController.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/UserController.kt index 2e8c7a4ec7ef..361c5a52e92e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/UserController.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/testing/withspringsecurity/UserController.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.howto.testing.withspringsecurity class UserController + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/MyApplication.kt index 62f3b7085e15..a102be7ac254 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/MyApplication.kt @@ -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. @@ -38,3 +38,4 @@ fun main(args: Array) { runApplication(*args) } // end::main[] + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/both/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/both/MyApplication.kt index 4b027297c62b..b5e09bbc5459 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/both/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/convertexistingapplication/both/MyApplication.kt @@ -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. @@ -42,3 +42,4 @@ class MyApplication : SpringBootServletInitializer() { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/weblogic/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/weblogic/MyApplication.kt index 61c1372007f5..77fd054bd6dd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/weblogic/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/traditionaldeployment/weblogic/MyApplication.kt @@ -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. @@ -22,3 +22,4 @@ import org.springframework.web.WebApplicationInitializer @SpringBootApplication class MyApplication : SpringBootServletInitializer(), WebApplicationInitializer + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/Filter.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilter.kt similarity index 92% rename from spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/Filter.kt rename to spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilter.kt index 393ef481bbea..27e9dacc23c1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/Filter.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilter.kt @@ -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. @@ -19,3 +19,4 @@ package org.springframework.boot.docs.howto.webserver.addservletfilterlistener.s import jakarta.servlet.Filter abstract class MyFilter : Filter + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilterConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilterConfiguration.kt index 9fa752796319..19280a7798d1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilterConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/howto/webserver/addservletfilterlistener/springbean/disable/MyFilterConfiguration.kt @@ -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. @@ -31,3 +31,4 @@ class MyFilterConfiguration { } } + 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 1c9a63b6eecc..5f4549c57980 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 @@ -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,3 +28,4 @@ class MyTomcatWebServerCustomizer : WebServerFactoryCustomizer) { // @fold:off } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/kafka/streams/MyKafkaStreamsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/kafka/streams/MyKafkaStreamsConfiguration.kt index 50fa5565668a..9cebb673170a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/kafka/streams/MyKafkaStreamsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/kafka/streams/MyKafkaStreamsConfiguration.kt @@ -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. @@ -43,3 +43,4 @@ class MyKafkaStreamsConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/pulsar/readingreactive/MyBean.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/pulsar/readingreactive/MyBean.kt index 985d0ebc18a2..15b4cf9c41dd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/pulsar/readingreactive/MyBean.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/pulsar/readingreactive/MyBean.kt @@ -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. @@ -42,3 +42,4 @@ class MyBean(private val pulsarReaderFactory: ReactivePulsarReaderFactory) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/MyService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/MyService.kt index a268d92c9d31..e0d04994b51b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/MyService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/MyService.kt @@ -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. @@ -36,3 +36,4 @@ class MyService(rsocketRequesterBuilder: RSocketRequester.Builder) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/User.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/User.kt index be2ddbc92cc6..f20fee622c75 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/User.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/messaging/rsocket/requester/User.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.messaging.rsocket.requester class User + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/packaging/nativeimage/advanced/nestedconfigurationproperties/MyPropertiesKotlin.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/packaging/nativeimage/advanced/nestedconfigurationproperties/MyPropertiesKotlin.kt index f094e0bf742a..6bf4a0b4b58f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/packaging/nativeimage/advanced/nestedconfigurationproperties/MyPropertiesKotlin.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/packaging/nativeimage/advanced/nestedconfigurationproperties/MyPropertiesKotlin.kt @@ -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. @@ -24,3 +24,4 @@ data class MyPropertiesKotlin( val name: String, @NestedConfigurationProperty val nested: Nested ) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/additionalautoconfigurationandslicing/MyJdbcTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/additionalautoconfigurationandslicing/MyJdbcTests.kt index 76befa9d829c..fbb0b7d45f62 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/additionalautoconfigurationandslicing/MyJdbcTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/additionalautoconfigurationandslicing/MyJdbcTests.kt @@ -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. @@ -23,3 +23,4 @@ import org.springframework.boot.test.autoconfigure.jdbc.JdbcTest @JdbcTest @ImportAutoConfiguration(IntegrationAutoConfiguration::class) class MyJdbcTests + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjdbc/MyTransactionalTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjdbc/MyTransactionalTests.kt index 47e511c093d1..76d31dd6c96a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjdbc/MyTransactionalTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjdbc/MyTransactionalTests.kt @@ -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. @@ -23,3 +23,4 @@ import org.springframework.transaction.annotation.Transactional @JdbcTest @Transactional(propagation = Propagation.NOT_SUPPORTED) class MyTransactionalTests + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjooq/MyJooqTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjooq/MyJooqTests.kt index 254ac05400c1..9d777d882b40 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjooq/MyJooqTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredjooq/MyJooqTests.kt @@ -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. @@ -26,3 +26,4 @@ class MyJooqTests(@Autowired val dslContext: DSLContext) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestClientServiceTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestClientServiceTests.kt index 02cb3c106dcd..81cdf04e73d8 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestClientServiceTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestClientServiceTests.kt @@ -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. @@ -39,3 +39,4 @@ class MyRestClientServiceTests( } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestTemplateServiceTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestTemplateServiceTests.kt index 202d645024b1..c5d369dd0707 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestTemplateServiceTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/MyRestTemplateServiceTests.kt @@ -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. @@ -38,4 +38,5 @@ class MyRestTemplateServiceTests( assertThat(greeting).isEqualTo("hello") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/RemoteVehicleDetailsService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/RemoteVehicleDetailsService.kt index e64d6cc41ed0..c25dbcedb5f1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/RemoteVehicleDetailsService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredrestclient/RemoteVehicleDetailsService.kt @@ -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. @@ -22,4 +22,5 @@ class RemoteVehicleDetailsService { return "hello" } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/MyDataCassandraTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/MyDataCassandraTests.kt index 05674bc1892e..430bc16e8ebf 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/MyDataCassandraTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/MyDataCassandraTests.kt @@ -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. @@ -21,3 +21,4 @@ import org.springframework.boot.test.autoconfigure.data.cassandra.DataCassandraT @DataCassandraTest class MyDataCassandraTests(@Autowired val repository: SomeRepository) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/SomeRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/SomeRepository.kt index d32bf41a1c53..6c5a0ddf9fc2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/SomeRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacassandra/SomeRepository.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringdatacassandra interface SomeRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/MyDataCouchbaseTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/MyDataCouchbaseTests.kt index 553f920066c7..4125ab98ac14 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/MyDataCouchbaseTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/MyDataCouchbaseTests.kt @@ -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,3 +25,4 @@ class MyDataCouchbaseTests(@Autowired val repository: SomeRepository) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/SomeRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/SomeRepository.kt index ef5d7f5bd7e1..ebbe162011e6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/SomeRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatacouchbase/SomeRepository.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringdatacouchbase interface SomeRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/MyDataElasticsearchTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/MyDataElasticsearchTests.kt index c123d7d1170b..03299048294b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/MyDataElasticsearchTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/MyDataElasticsearchTests.kt @@ -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,3 +25,4 @@ class MyDataElasticsearchTests(@Autowired val repository: SomeRepository) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/SomeRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/SomeRepository.kt index 6f5dfd2120a9..2611633e710b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/SomeRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataelasticsearch/SomeRepository.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringdataelasticsearch interface SomeRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/MyNonTransactionalTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/MyNonTransactionalTests.kt index 4f898a4e837b..093c06a3b6aa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/MyNonTransactionalTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/MyNonTransactionalTests.kt @@ -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. @@ -27,3 +27,4 @@ class MyNonTransactionalTests { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withdb/MyRepositoryTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withdb/MyRepositoryTests.kt index 678805e5dd54..7e3687d09f00 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withdb/MyRepositoryTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withdb/MyRepositoryTests.kt @@ -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. @@ -26,3 +26,4 @@ class MyRepositoryTests { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/MyRepositoryTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/MyRepositoryTests.kt index 0b46d184f0da..da5e86a90642 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/MyRepositoryTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/MyRepositoryTests.kt @@ -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. @@ -34,3 +34,4 @@ class MyRepositoryTests(@Autowired val entityManager: TestEntityManager, @Autowi } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/User.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/User.kt index d317da025f11..841c6b2d7ef5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/User.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/User.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringdatajpa.withoutdb class User(val username: String, val employeeNumber: String) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/UserRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/UserRepository.kt index f517637624f2..567e112d317c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/UserRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatajpa/withoutdb/UserRepository.kt @@ -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. @@ -21,3 +21,4 @@ interface UserRepository { fun findByUsername(username: String?): User? } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/inmemory/MyDataLdapTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/inmemory/MyDataLdapTests.kt index c52fc28a701f..cb7b18dad270 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/inmemory/MyDataLdapTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/inmemory/MyDataLdapTests.kt @@ -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. @@ -26,3 +26,4 @@ class MyDataLdapTests(@Autowired val ldapTemplate: LdapTemplate) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/server/MyDataLdapTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/server/MyDataLdapTests.kt index 5e905e60436f..4b94e205b288 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/server/MyDataLdapTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataldap/server/MyDataLdapTests.kt @@ -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,3 +25,4 @@ class MyDataLdapTests { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatamongodb/MyDataMongoDbTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatamongodb/MyDataMongoDbTests.kt index 72f9b345ca6d..fa7344fb9b38 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatamongodb/MyDataMongoDbTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdatamongodb/MyDataMongoDbTests.kt @@ -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. @@ -26,3 +26,4 @@ class MyDataMongoDbTests(@Autowired val mongoTemplate: MongoTemplate) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/nopropagation/MyDataNeo4jTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/nopropagation/MyDataNeo4jTests.kt index 228e0173efb5..0b64141fde74 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/nopropagation/MyDataNeo4jTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/nopropagation/MyDataNeo4jTests.kt @@ -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. @@ -23,3 +23,4 @@ import org.springframework.transaction.annotation.Transactional @DataNeo4jTest @Transactional(propagation = Propagation.NOT_SUPPORTED) class MyDataNeo4jTests + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/MyDataNeo4jTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/MyDataNeo4jTests.kt index a69c02384546..36331fe95b25 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/MyDataNeo4jTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/MyDataNeo4jTests.kt @@ -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,3 +25,4 @@ class MyDataNeo4jTests(@Autowired val repository: SomeRepository) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/SomeRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/SomeRepository.kt index e13ff03032b6..c5ebb9107782 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/SomeRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataneo4j/propagation/SomeRepository.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringdataneo4j.propagation interface SomeRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/MyDataRedisTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/MyDataRedisTests.kt index 5a619337f323..86beacf5dab3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/MyDataRedisTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/MyDataRedisTests.kt @@ -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,3 +25,4 @@ class MyDataRedisTests(@Autowired val repository: SomeRepository) { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/SomeRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/SomeRepository.kt index e328b041da5e..91968159945a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/SomeRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringdataredis/SomeRepository.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringdataredis interface SomeRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyRestDocsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyRestDocsConfiguration.kt index 4c1336a959bb..1b358268bd3f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyRestDocsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyRestDocsConfiguration.kt @@ -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. @@ -28,4 +28,5 @@ class MyRestDocsConfiguration : RestDocsMockMvcConfigurationCustomizer { configurer.snippets().withTemplateFormat(TemplateFormats.markdown()) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyResultHandlerConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyResultHandlerConfiguration.kt index fe9e6b8f432a..a01e850d209a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyResultHandlerConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyResultHandlerConfiguration.kt @@ -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. @@ -30,3 +30,4 @@ class MyResultHandlerConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyUserDocumentationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyUserDocumentationTests.kt index 101402064daa..3c7b8ce7be85 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyUserDocumentationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/MyUserDocumentationTests.kt @@ -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. @@ -37,4 +37,5 @@ class MyUserDocumentationTests(@Autowired val mvc: MockMvc) { .andDo(MockMvcRestDocumentation.document("list-users")) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/UserController.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/UserController.kt index d932051c0cd0..ebe0092aa200 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/UserController.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withmockmvc/UserController.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.autoconfiguredspringrestdocs.withmockmvc class UserController + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt index b5338b1b4ddb..1dc5a4e419e6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyRestDocsConfiguration.kt @@ -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. @@ -29,3 +29,4 @@ class MyRestDocsConfiguration : RestDocsRestAssuredConfigurationCustomizer { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt index 9aaa3ea60377..82fd713571a8 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withrestassured/MyUserDocumentationTests.kt @@ -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. @@ -42,3 +42,4 @@ class MyUserDocumentationTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyRestDocsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyRestDocsConfiguration.kt index 845ecf8eb489..e26f665e708f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyRestDocsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyRestDocsConfiguration.kt @@ -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. @@ -28,3 +28,4 @@ class MyRestDocsConfiguration : RestDocsWebTestClientConfigurationCustomizer { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyUsersDocumentationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyUsersDocumentationTests.kt index 8161976e285c..f12b633d0736 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyUsersDocumentationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyUsersDocumentationTests.kt @@ -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. @@ -38,4 +38,5 @@ class MyUsersDocumentationTests(@Autowired val webTestClient: WebTestClient) { .consumeWith(WebTestClientRestDocumentation.document("list-users")) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyWebTestClientBuilderCustomizerConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyWebTestClientBuilderCustomizerConfiguration.kt index 2ba6f1b7d0a5..6a5ea52b3cc7 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyWebTestClientBuilderCustomizerConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredspringrestdocs/withwebtestclient/MyWebTestClientBuilderCustomizerConfiguration.kt @@ -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,3 +35,4 @@ class MyWebTestClientBuilderCustomizerConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/MyWebServiceClientTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/MyWebServiceClientTests.kt index b960a69c7657..7a66daba5244 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/MyWebServiceClientTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/MyWebServiceClientTests.kt @@ -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. @@ -26,7 +26,8 @@ import org.springframework.ws.test.client.ResponseCreators import org.springframework.xml.transform.StringSource @WebServiceClientTest(SomeWebService::class) -class MyWebServiceClientTests(@Autowired val server: MockWebServiceServer, @Autowired val someWebService: SomeWebService) { +class MyWebServiceClientTests( + @Autowired val server: MockWebServiceServer, @Autowired val someWebService: SomeWebService) { @Test fun mockServerCall() { @@ -37,3 +38,4 @@ class MyWebServiceClientTests(@Autowired val server: MockWebServiceServer, @Auto } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Request.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Request.kt index 059a9473e1e7..07b0a3b0eee2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Request.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Request.kt @@ -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. @@ -20,3 +20,4 @@ import jakarta.xml.bind.annotation.XmlRootElement @XmlRootElement(name = "request") class Request + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Response.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Response.kt index e99ec4f8f88c..f1f0f7d64cda 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Response.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/Response.kt @@ -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,3 +25,4 @@ import jakarta.xml.bind.annotation.XmlRootElement class Response { val status = 0 } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/SomeWebService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/SomeWebService.kt index aafdd7fea4ca..3d5330f317bd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/SomeWebService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/client/SomeWebService.kt @@ -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. @@ -34,3 +34,4 @@ class SomeWebService(builder: WebServiceTemplateBuilder) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/ExampleEndpoint.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/ExampleEndpoint.kt index 7f7ddd8b4cd2..7b7ee75d7f0a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/ExampleEndpoint.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/ExampleEndpoint.kt @@ -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. @@ -33,3 +33,4 @@ class ExampleEndpoint { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/MyWebServiceServerTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/MyWebServiceServerTests.kt index f7b6bf746ce2..bae046a22b8c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/MyWebServiceServerTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/autoconfiguredwebservices/server/MyWebServiceServerTests.kt @@ -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,3 +35,4 @@ class MyWebServiceServerTests(@Autowired val client: MockWebServiceClient) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/detectingwebapptype/MyWebFluxTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/detectingwebapptype/MyWebFluxTests.kt index db06422fafd7..518655401a24 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/detectingwebapptype/MyWebFluxTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/detectingwebapptype/MyWebFluxTests.kt @@ -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. @@ -23,4 +23,5 @@ class MyWebFluxTests { // ... -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTests.kt index 4c6e8d9fbf29..f470bf7f6ede 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTests.kt @@ -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. @@ -30,3 +30,4 @@ class MyTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTestsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTestsConfiguration.kt index 211fd9b7841b..bcc02ff6dcf3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTestsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/excludingconfiguration/MyTestsConfiguration.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.excludingconfiguration class MyTestsConfiguration + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/MyJmxTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/MyJmxTests.kt index 97988a741f0e..abdc5f804016 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/MyJmxTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/MyJmxTests.kt @@ -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,3 +35,4 @@ class MyJmxTests(@Autowired val mBeanServer: MBeanServer) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/SampleApp.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/SampleApp.kt index b5651cc454f1..b88dd7f6c12b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/SampleApp.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jmx/SampleApp.kt @@ -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. @@ -23,3 +23,4 @@ import org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration @SpringBootConfiguration @ImportAutoConfiguration(JmxAutoConfiguration::class) class SampleApp + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonAssertJTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonAssertJTests.kt index 4ac615c2ec9a..5c21c0c6fbbb 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonAssertJTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonAssertJTests.kt @@ -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. @@ -39,3 +39,4 @@ class MyJsonAssertJTests(@Autowired val json: JacksonTester) { // end::code[] } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonTests.kt index 46712e5ea3fc..03c612580e49 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/MyJsonTests.kt @@ -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. @@ -43,3 +43,4 @@ class MyJsonTests(@Autowired val json: JacksonTester) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/SomeObject.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/SomeObject.kt index b279ce708848..88f513ab9a62 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/SomeObject.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/SomeObject.kt @@ -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. @@ -18,3 +18,4 @@ package org.springframework.boot.docs.testing.springbootapplications.jsontests @Suppress("UNUSED_PARAMETER") class SomeObject(value: Float) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/VehicleDetails.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/VehicleDetails.kt index 0d019b931e10..e0e453f90441 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/VehicleDetails.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/jsontests/VehicleDetails.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.jsontests data class VehicleDetails(val make: String, val model: String) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/MyTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/MyTests.kt index ad25cc5b1d95..9b128733bc50 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/MyTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/MyTests.kt @@ -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. @@ -33,4 +33,5 @@ class MyTests(@Autowired val reverser: Reverser, @MockBean val remoteService: Re assertThat(reverse).isEqualTo("gnirps") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/RemoteService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/RemoteService.kt index 658244320e83..0e84c51dc17f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/RemoteService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/RemoteService.kt @@ -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. @@ -22,3 +22,4 @@ class RemoteService { get() = null } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/Reverser.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/Reverser.kt index 9d5d7fef348e..253c34f42a3a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/Reverser.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/bean/Reverser.kt @@ -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. @@ -21,4 +21,5 @@ class Reverser { val reverseValue: String? get() = null -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyConfig.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyConfig.kt index 203bf9c5bfbf..88217f198c0a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyConfig.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyConfig.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.mockingbeans.listener class MyConfig + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyTests.kt index c591fc84dabd..27a7a181b078 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/mockingbeans/listener/MyTests.kt @@ -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. @@ -31,3 +31,4 @@ class MyTests { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GraphQlIntegrationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GraphQlIntegrationTests.kt index c1d4592c4966..aa815b9e7c1d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GraphQlIntegrationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GraphQlIntegrationTests.kt @@ -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. @@ -39,4 +39,5 @@ class GraphQlIntegrationTests { authenticatedTester.document("{ greeting(name: \"Alice\") } ").execute() .path("greeting").entity(String::class.java).isEqualTo("Hello, Alice!") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GreetingControllerTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GreetingControllerTests.kt index 53980c411620..dbf1eaff4d11 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GreetingControllerTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springgraphqltests/GreetingControllerTests.kt @@ -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. @@ -41,3 +41,4 @@ internal class GreetingControllerTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyControllerTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyControllerTests.kt index bcef92d2410d..5d0d8ac6f199 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyControllerTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyControllerTests.kt @@ -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. @@ -42,3 +42,4 @@ class MyControllerTests(@Autowired val mvc: MockMvc) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyHtmlUnitTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyHtmlUnitTests.kt index cdfedba741cb..a5c68397ab3a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyHtmlUnitTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/MyHtmlUnitTests.kt @@ -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. @@ -39,3 +39,4 @@ class MyHtmlUnitTests(@Autowired val webClient: WebClient) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleController.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleController.kt index 32b4b58874d1..4bf2c5c92ca3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleController.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleController.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.springmvctests class UserVehicleController + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleService.kt index a0aa92b8fffa..d50d91f1a424 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/UserVehicleService.kt @@ -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. @@ -24,3 +24,4 @@ class UserVehicleService { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/VehicleDetails.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/VehicleDetails.kt index 448560939f93..f51146f98550 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/VehicleDetails.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springmvctests/VehicleDetails.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.springmvctests data class VehicleDetails(val make: String, val model: String) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/MyControllerTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/MyControllerTests.kt index e46c798bb39e..9fb11b6aae54 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/MyControllerTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/MyControllerTests.kt @@ -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. @@ -40,4 +40,5 @@ class MyControllerTests(@Autowired val webClient: WebTestClient) { .expectBody().isEqualTo("Honda Civic") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleController.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleController.kt index 7d3ad1f583df..44164458f9dc 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleController.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleController.kt @@ -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. @@ -16,4 +16,5 @@ package org.springframework.boot.docs.testing.springbootapplications.springwebfluxtests -class UserVehicleController \ No newline at end of file +class UserVehicleController + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleService.kt index 8696f9f64e20..049131623cf4 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/UserVehicleService.kt @@ -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. @@ -24,3 +24,4 @@ class UserVehicleService { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/VehicleDetails.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/VehicleDetails.kt index ea3be41f1946..e36cdce5ea7e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/VehicleDetails.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/springwebfluxtests/VehicleDetails.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.springbootapplications.springwebfluxtests data class VehicleDetails(val make: String, val model: String) + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyApplication.kt index 479133df0013..877a4e62fc4d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyMongoConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyMongoConfiguration.kt index b138ad38d041..b81f661a87c9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyMongoConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyMongoConfiguration.kt @@ -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. @@ -26,3 +26,4 @@ class MyMongoConfiguration { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebConfiguration.kt index cf5129aafd25..f5331bb91e07 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebConfiguration.kt @@ -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. @@ -30,4 +30,5 @@ class MyWebConfiguration { } } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebMvcConfigurer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebMvcConfigurer.kt index eaa57fba45dd..0cebcc789247 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebMvcConfigurer.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/MyWebMvcConfigurer.kt @@ -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,3 +25,4 @@ class MyWebMvcConfigurer : WebMvcConfigurer { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/scan/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/scan/MyApplication.kt index f01db92229f0..510926506885 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/scan/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/userconfigurationandslicing/scan/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingapplicationarguments/MyApplicationArgumentTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingapplicationarguments/MyApplicationArgumentTests.kt index 2ae91cee8bab..1dbeb508ea55 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingapplicationarguments/MyApplicationArgumentTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingapplicationarguments/MyApplicationArgumentTests.kt @@ -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. @@ -32,3 +32,4 @@ class MyApplicationArgumentTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/always/MyApplicationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/always/MyApplicationTests.kt index b065a6c664f9..9a38b098bfc3 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/always/MyApplicationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/always/MyApplicationTests.kt @@ -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. @@ -29,3 +29,4 @@ class MyApplicationTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/custom/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/custom/MyApplication.kt index 08408803b4f6..48749cd00d37 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/custom/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/custom/MyApplication.kt @@ -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. @@ -29,3 +29,4 @@ fun main(args: Array) { setAdditionalProfiles("myprofile") } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/typical/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/typical/MyApplication.kt index a498939c4c27..5dfb37dd3cb2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/typical/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/usingmain/typical/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockMvcTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockMvcTests.kt index a5d792ad03f1..6b5b965e2771 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockMvcTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockMvcTests.kt @@ -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. @@ -48,3 +48,4 @@ class MyMockMvcTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockWebTestClientTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockWebTestClientTests.kt index 6fa96f8b06bc..28adc1d0e8a2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockWebTestClientTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withmockenvironment/MyMockWebTestClientTests.kt @@ -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. @@ -37,3 +37,4 @@ class MyMockWebTestClientTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortTestRestTemplateTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortTestRestTemplateTests.kt index 5a330401134d..156110f388c1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortTestRestTemplateTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortTestRestTemplateTests.kt @@ -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. @@ -33,3 +33,4 @@ class MyRandomPortTestRestTemplateTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortWebTestClientTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortWebTestClientTests.kt index b196d71e7d5c..cb8cb4035269 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortWebTestClientTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/springbootapplications/withrunningserver/MyRandomPortWebTestClientTests.kt @@ -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,4 +35,5 @@ class MyRandomPortWebTestClientTests { .expectBody().isEqualTo("Hello World") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/dynamicproperties/MyIntegrationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/dynamicproperties/MyIntegrationTests.kt index cf1b16b7e44f..710ec076078f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/dynamicproperties/MyIntegrationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/dynamicproperties/MyIntegrationTests.kt @@ -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. @@ -44,3 +44,4 @@ class MyIntegrationTests { } } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyContainers.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyContainers.kt index e778cd68987e..287930918ffb 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyContainers.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyContainers.kt @@ -32,4 +32,5 @@ interface MyContainers { } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyTestConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyTestConfiguration.kt index fd8edc8e3e28..6fc79cc94e6d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyTestConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/importingconfigurationinterfaces/MyTestConfiguration.kt @@ -24,3 +24,4 @@ import org.springframework.boot.testcontainers.context.ImportTestcontainers class MyTestConfiguration { } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyIntegrationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyIntegrationTests.kt index 6134cbbe576e..430bc16218c6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyIntegrationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyIntegrationTests.kt @@ -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. @@ -43,3 +43,4 @@ class MyIntegrationTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyRedisConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyRedisConfiguration.kt index e7b107682272..67d00c3bdf31 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyRedisConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/serviceconnections/MyRedisConfiguration.kt @@ -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. @@ -30,4 +30,5 @@ class MyRedisConfiguration { return GenericContainer("redis:7") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyIntegrationTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyIntegrationTests.kt index 8d0f1cc9302b..32e910a49597 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyIntegrationTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyIntegrationTests.kt @@ -33,4 +33,5 @@ class MyIntegrationTests { /**/ println() } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyTestConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyTestConfiguration.kt index 19b9f87c1e2d..463ea2976941 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyTestConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/testcontainers/springbeans/MyTestConfiguration.kt @@ -28,4 +28,5 @@ class MyTestConfiguration { return MongoDBContainer(DockerImageName.parse("mongo:5.0")) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/Config.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/Config.kt index ae69f62bbd25..5ab7a43da7b2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/Config.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/Config.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2024 the original author or authors. + * Copyright 2012-2025 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.testing.utilities.configdataapplicationcontextinitializer class Config + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/MyConfigFileTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/MyConfigFileTests.kt index ef24a4a79ff4..a1aadfd81dad 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/MyConfigFileTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/configdataapplicationcontextinitializer/MyConfigFileTests.kt @@ -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,3 +25,4 @@ class MyConfigFileTests { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/outputcapture/MyOutputCaptureTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/outputcapture/MyOutputCaptureTests.kt index 623f693867de..045d088d113a 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/outputcapture/MyOutputCaptureTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/outputcapture/MyOutputCaptureTests.kt @@ -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. @@ -31,4 +31,5 @@ class MyOutputCaptureTests { assertThat(output).contains("World") } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testpropertyvalues/MyEnvironmentTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testpropertyvalues/MyEnvironmentTests.kt index 4930df4f3e20..0f0be7ca5ea5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testpropertyvalues/MyEnvironmentTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testpropertyvalues/MyEnvironmentTests.kt @@ -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. @@ -31,3 +31,4 @@ class MyEnvironmentTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTests.kt index 6f47e39d8013..f9880b54c2fd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTests.kt @@ -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. @@ -48,3 +48,4 @@ class MySpringBootTests(@Autowired val template: TestRestTemplate) { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTestsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTestsConfiguration.kt index 6d3c10a267ba..9fca0e73bfcd 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTestsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MySpringBootTestsConfiguration.kt @@ -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. @@ -47,3 +47,4 @@ class MySpringBootTestsConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MyTests.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MyTests.kt index dac2139855df..0810fb85e012 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MyTests.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/testing/utilities/testresttemplate/MyTests.kt @@ -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. @@ -31,3 +31,4 @@ class MyTests { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/autoconfiguration/disablingspecific/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/autoconfiguration/disablingspecific/MyApplication.kt index 8f92f5d32652..c7b333f8cf24 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/autoconfiguration/disablingspecific/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/autoconfiguration/disablingspecific/MyApplication.kt @@ -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. @@ -21,3 +21,4 @@ import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration @SpringBootApplication(exclude = [DataSourceAutoConfiguration::class]) class MyApplication + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/devtools/restart/disable/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/devtools/restart/disable/MyApplication.kt index 8454f1ae10eb..a2ee7b264cd1 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/devtools/restart/disable/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/devtools/restart/disable/MyApplication.kt @@ -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. @@ -29,3 +29,4 @@ object MyApplication { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/multipleconstructors/MyAccountService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/multipleconstructors/MyAccountService.kt index 6a1557846ea5..44dc6cc9ea11 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/multipleconstructors/MyAccountService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/multipleconstructors/MyAccountService.kt @@ -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. @@ -41,3 +41,4 @@ class MyAccountService : AccountService { // ... } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/singleconstructor/MyAccountService.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/singleconstructor/MyAccountService.kt index b9f97037c559..cbb5781cbf00 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/singleconstructor/MyAccountService.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/springbeansanddependencyinjection/singleconstructor/MyAccountService.kt @@ -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. @@ -20,3 +20,4 @@ import org.springframework.stereotype.Service @Service class MyAccountService(private val riskAssessor: RiskAssessor) : AccountService + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/structuringyourcode/locatingthemainclass/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/structuringyourcode/locatingthemainclass/MyApplication.kt index 8220b4fb3360..937b32d1ecc6 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/structuringyourcode/locatingthemainclass/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/structuringyourcode/locatingthemainclass/MyApplication.kt @@ -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. @@ -25,3 +25,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/individualannotations/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/individualannotations/MyApplication.kt index 1373718cb6d6..d44ae89e2176 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/individualannotations/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/individualannotations/MyApplication.kt @@ -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. @@ -30,3 +30,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/springapplication/MyApplication.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/springapplication/MyApplication.kt index d4f9bb15c2cf..3f7d3f16e162 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/springapplication/MyApplication.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/using/usingthespringbootapplicationannotation/springapplication/MyApplication.kt @@ -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. @@ -26,3 +26,4 @@ class MyApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/runtimewiring/GreetingController.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/runtimewiring/GreetingController.kt index c8882912c491..32d2aee05e85 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/runtimewiring/GreetingController.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/runtimewiring/GreetingController.kt @@ -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. @@ -29,3 +29,4 @@ class GreetingController { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/transports/rsocket/RSocketGraphQlClientExample.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/transports/rsocket/RSocketGraphQlClientExample.kt index 79988fe089ed..3bb1b5d59d6f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/transports/rsocket/RSocketGraphQlClientExample.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/graphql/transports/rsocket/RSocketGraphQlClientExample.kt @@ -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. @@ -49,4 +49,5 @@ class RSocketGraphQlClientExample(private val builder: RSocketGraphQlClient.Buil } internal class Book -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyNettyWebServerFactoryCustomizer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyNettyWebServerFactoryCustomizer.kt index d30381e9fdee..d7bd5f4d19ae 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyNettyWebServerFactoryCustomizer.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyNettyWebServerFactoryCustomizer.kt @@ -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. @@ -28,4 +28,5 @@ class MyNettyWebServerFactoryCustomizer : WebServerFactoryCustomizer server.idleTimeout(Duration.ofSeconds(20)) }) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyWebServerFactoryCustomizer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyWebServerFactoryCustomizer.kt index 82c6b0ec3887..fc48c79f977b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyWebServerFactoryCustomizer.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/reactiveserver/customizing/programmatic/MyWebServerFactoryCustomizer.kt @@ -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. @@ -27,4 +27,5 @@ class MyWebServerFactoryCustomizer : WebServerFactoryCustomizer { fun findByUser(user: User?): Flux? } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyRoutingConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyRoutingConfiguration.kt index 524d2e31fefb..c3ef91fe5200 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyRoutingConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyRoutingConfiguration.kt @@ -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. @@ -42,3 +42,4 @@ class MyRoutingConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyUserHandler.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyUserHandler.kt index 9131d9b01cb0..8a8c3d9c7c0b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyUserHandler.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/MyUserHandler.kt @@ -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. @@ -38,3 +38,4 @@ class MyUserHandler { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/User.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/User.kt index dc684b3514f5..eb590ee639a9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/User.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/User.kt @@ -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. @@ -22,3 +22,4 @@ class User { get() = null } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/UserRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/UserRepository.kt index f8340c04dabe..58d1e61640b9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/UserRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/UserRepository.kt @@ -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. @@ -19,3 +19,4 @@ package org.springframework.boot.docs.web.reactive.webflux import org.springframework.data.repository.reactive.ReactiveCrudRepository interface UserRepository : ReactiveCrudRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt index 451001d0fd80..fbf664f409e5 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/reactive/webflux/httpcodecs/MyCodecsConfiguration.kt @@ -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. @@ -32,3 +32,4 @@ class MyCodecsConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/oauth2/client/MyOAuthClientConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/oauth2/client/MyOAuthClientConfiguration.kt index ec35d85b4d90..0c2865b0a0a4 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/oauth2/client/MyOAuthClientConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/oauth2/client/MyOAuthClientConfiguration.kt @@ -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. @@ -43,3 +43,4 @@ open class MyOAuthClientConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/springwebflux/MyWebFluxSecurityConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/springwebflux/MyWebFluxSecurityConfiguration.kt index 2dec9a0bc386..54e2138803ac 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/springwebflux/MyWebFluxSecurityConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/security/springwebflux/MyWebFluxSecurityConfiguration.kt @@ -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. @@ -37,3 +37,4 @@ class MyWebFluxSecurityConfiguration { } } + 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 afae94fc8f19..e3727493b486 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 @@ -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,4 +28,5 @@ class MyTomcatWebServerFactoryCustomizer : WebServerFactoryCustomizer connector.asyncTimeout = Duration.ofSeconds(20).toMillis() }) } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyWebServerFactoryCustomizer.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyWebServerFactoryCustomizer.kt index 70194c128d89..5acfb7592666 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyWebServerFactoryCustomizer.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/embeddedcontainer/customizing/programmatic/MyWebServerFactoryCustomizer.kt @@ -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. @@ -27,4 +27,5 @@ class MyWebServerFactoryCustomizer : WebServerFactoryCustomizer { fun findByUser(user: User?): List? -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyRoutingConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyRoutingConfiguration.kt index dedc069ab214..19b8a42ba23f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyRoutingConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyRoutingConfiguration.kt @@ -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. @@ -41,3 +41,4 @@ class MyRoutingConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyUserHandler.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyUserHandler.kt index 20ce4f5a3a4b..9c6f1a62080f 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyUserHandler.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/MyUserHandler.kt @@ -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. @@ -37,3 +37,4 @@ class MyUserHandler { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/User.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/User.kt index 2d3d3c6d88b7..1439c7b124a4 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/User.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/User.kt @@ -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. @@ -22,3 +22,4 @@ class User { get() = null } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/UserRepository.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/UserRepository.kt index b2eb0c7afb7a..351582dc8e96 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/UserRepository.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/UserRepository.kt @@ -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. @@ -19,3 +19,4 @@ package org.springframework.boot.docs.web.servlet.springmvc import org.springframework.data.repository.CrudRepository interface UserRepository : CrudRepository + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/cors/MyCorsConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/cors/MyCorsConfiguration.kt index c7230542a360..9cd827c98b6b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/cors/MyCorsConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/cors/MyCorsConfiguration.kt @@ -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. @@ -34,3 +34,4 @@ class MyCorsConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/CustomException.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/CustomException.kt index e53132940e20..a451cfc07fb9 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/CustomException.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/CustomException.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.web.servlet.springmvc.errorhandling class CustomException : RuntimeException() + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/MyControllerAdvice.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/MyControllerAdvice.kt index 6a8ed2834beb..3152eae22ff2 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/MyControllerAdvice.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/MyControllerAdvice.kt @@ -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. @@ -42,3 +42,4 @@ class MyControllerAdvice : ResponseEntityExceptionHandler() { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpages/MyErrorViewResolver.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpages/MyErrorViewResolver.kt index 16e205c53717..43be4bda0457 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpages/MyErrorViewResolver.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpages/MyErrorViewResolver.kt @@ -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. @@ -33,4 +33,5 @@ class MyErrorViewResolver : ErrorViewResolver { return null } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyErrorPagesConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyErrorPagesConfiguration.kt index f901d0248a77..33102752692d 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyErrorPagesConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyErrorPagesConfiguration.kt @@ -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. @@ -36,3 +36,4 @@ class MyErrorPagesConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilter.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilter.kt index 8ac3ceb28a73..af9601e66e7e 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilter.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilter.kt @@ -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. @@ -26,4 +26,5 @@ class MyFilter : GenericFilterBean() { override fun doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain) { } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilterConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilterConfiguration.kt index 5646cc73b59a..df107ac9c39b 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilterConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/errorhandling/errorpageswithoutspringmvc/MyFilterConfiguration.kt @@ -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. @@ -34,3 +34,4 @@ class MyFilterConfiguration { } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AdditionalHttpMessageConverter.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AdditionalHttpMessageConverter.kt index d851f33d004e..588fd0f8b66c 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AdditionalHttpMessageConverter.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AdditionalHttpMessageConverter.kt @@ -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. @@ -39,3 +39,4 @@ open class AdditionalHttpMessageConverter : AbstractHttpMessageConverter() } } + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AnotherHttpMessageConverter.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AnotherHttpMessageConverter.kt index 72a0a4779f00..c081e70f55f7 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AnotherHttpMessageConverter.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/AnotherHttpMessageConverter.kt @@ -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. @@ -17,3 +17,4 @@ package org.springframework.boot.docs.web.servlet.springmvc.messageconverters class AnotherHttpMessageConverter : AdditionalHttpMessageConverter() + diff --git a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/MyHttpMessageConvertersConfiguration.kt b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/MyHttpMessageConvertersConfiguration.kt index 8a1c6606e65d..7741435958aa 100644 --- a/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/MyHttpMessageConvertersConfiguration.kt +++ b/spring-boot-project/spring-boot-docs/src/main/kotlin/org/springframework/boot/docs/web/servlet/springmvc/messageconverters/MyHttpMessageConvertersConfiguration.kt @@ -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. @@ -32,3 +32,4 @@ class MyHttpMessageConvertersConfiguration { } } + diff --git a/spring-boot-project/spring-boot-test/src/main/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensions.kt b/spring-boot-project/spring-boot-test/src/main/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensions.kt index d8141d722092..f288690da578 100644 --- a/spring-boot-project/spring-boot-test/src/main/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensions.kt +++ b/spring-boot-project/spring-boot-test/src/main/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensions.kt @@ -1,5 +1,5 @@ /* - * Copyright 2012-2017 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. @@ -99,7 +99,8 @@ inline fun TestRestTemplate.getForEntity(url: String, vararg u * @since 2.0.0 */ @Throws(RestClientException::class) -inline fun TestRestTemplate.getForEntity(url: String, uriVariables: Map): ResponseEntity = +inline fun TestRestTemplate.getForEntity(url: String, + uriVariables: Map): ResponseEntity = getForEntity(url, T::class.java, uriVariables) /** @@ -275,3 +276,4 @@ inline fun TestRestTemplate.exchange(url: URI, method: HttpMet @Throws(RestClientException::class) inline fun TestRestTemplate.exchange(requestEntity: RequestEntity<*>): ResponseEntity = exchange(requestEntity, object : ParameterizedTypeReference() {}) + diff --git a/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/KotlinApplicationWithMainThrowingException.kt b/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/KotlinApplicationWithMainThrowingException.kt index b62c34ec104a..97778970e31d 100644 --- a/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/KotlinApplicationWithMainThrowingException.kt +++ b/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/KotlinApplicationWithMainThrowingException.kt @@ -10,3 +10,4 @@ fun main(args: Array) { runApplication(*args) throw IllegalStateException("ThrownFromMain") } + diff --git a/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/SpringBootContextLoaderKotlinTests.kt b/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/SpringBootContextLoaderKotlinTests.kt index 9007c0e6ea44..92ee343bf9d1 100644 --- a/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/SpringBootContextLoaderKotlinTests.kt +++ b/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/context/SpringBootContextLoaderKotlinTests.kt @@ -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. @@ -48,4 +48,5 @@ class SpringBootContextLoaderKotlinTests { @SpringBootTest(classes = [KotlinApplicationWithMainThrowingException::class], useMainMethod = UseMainMethod.ALWAYS) internal class UseMainMethodAlwaysAndKotlinMainMethodThrowsException -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensionsTests.kt b/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensionsTests.kt index 6501d3afa814..f4a090da5dc2 100644 --- a/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensionsTests.kt +++ b/spring-boot-project/spring-boot-test/src/test/kotlin/org/springframework/boot/test/web/client/TestRestTemplateExtensionsTests.kt @@ -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. @@ -262,3 +262,4 @@ class TestRestTemplateExtensionsTests { class Foo } + diff --git a/spring-boot-project/spring-boot/src/main/kotlin/org/springframework/boot/SpringApplicationExtensions.kt b/spring-boot-project/spring-boot/src/main/kotlin/org/springframework/boot/SpringApplicationExtensions.kt index 142838bfd416..3ad125dc4d6b 100644 --- a/spring-boot-project/spring-boot/src/main/kotlin/org/springframework/boot/SpringApplicationExtensions.kt +++ b/spring-boot-project/spring-boot/src/main/kotlin/org/springframework/boot/SpringApplicationExtensions.kt @@ -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. @@ -42,7 +42,8 @@ inline fun runApplication(vararg args: String): ConfigurableAp * @author Sebastien Deleuze * @since 2.0.0 */ -inline fun runApplication(vararg args: String, init: SpringApplication.() -> Unit): ConfigurableApplicationContext = +inline fun runApplication( + vararg args: String, init: SpringApplication.() -> Unit): ConfigurableApplicationContext = SpringApplication(T::class.java).apply(init).run(*args) /** @@ -76,3 +77,4 @@ inline fun fromApplication(): SpringApplication.Augmented { fun SpringApplication.Augmented.with(vararg types: KClass<*>): SpringApplication.Augmented { return this.with(*types.map(KClass<*>::java).toTypedArray())!! } + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/SpringApplicationExtensionsTests.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/SpringApplicationExtensionsTests.kt index e1971aa17e1d..45701458c039 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/SpringApplicationExtensionsTests.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/SpringApplicationExtensionsTests.kt @@ -1,5 +1,5 @@ /* - * Copyright 2002-2023 the original author or authors. + * Copyright 2002-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. @@ -78,7 +78,8 @@ class SpringApplicationExtensionsTests { @Test fun `Kotlin fromApplication() top level function with multiple sources`() { - val context = fromApplication().with(ExampleWebConfig::class, ExampleFilterConfig::class).run().applicationContext + val context = fromApplication() + .with(ExampleWebConfig::class, ExampleFilterConfig::class).run().applicationContext assertThat(context.getBean()).isNotNull() assertThat(context.getBean()).isNotNull() } @@ -86,7 +87,8 @@ class SpringApplicationExtensionsTests { @Test fun `Kotlin fromApplication() top level function when no main`() { assertThatIllegalStateException().isThrownBy { fromApplication().run() } - .withMessage("Unable to use 'fromApplication' with org.springframework.boot.SpringApplicationExtensionsTests.ExampleWebConfig") + .withMessage("Unable to use 'fromApplication' with " + + "org.springframework.boot.SpringApplicationExtensionsTests.ExampleWebConfig") } @Configuration(proxyBeanMethods = false) @@ -110,3 +112,4 @@ class SpringApplicationExtensionsTests { } } + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesBeanRegistrarTests.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesBeanRegistrarTests.kt index cc50d38eda96..d4126e686f65 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesBeanRegistrarTests.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesBeanRegistrarTests.kt @@ -59,3 +59,4 @@ class KotlinConfigurationPropertiesBeanRegistrarTests { } } + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesTests.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesTests.kt index 80f81a522807..9deb939b4755 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesTests.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/KotlinConfigurationPropertiesTests.kt @@ -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. @@ -117,4 +117,5 @@ class KotlinConfigurationPropertiesTests { var prop: String = "" ) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinBindableRuntimeHintsRegistrarTests.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinBindableRuntimeHintsRegistrarTests.kt index ef7c4f6bbeac..38e6552eb3af 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinBindableRuntimeHintsRegistrarTests.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinBindableRuntimeHintsRegistrarTests.kt @@ -41,4 +41,5 @@ class KotlinBindableRuntimeHintsRegistrarTests { } data class PropertyWithDefaultValue(var a: String = "alpha") -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinConstructorParametersBinderTests.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinConstructorParametersBinderTests.kt index 19d178594f68..2a69bc51980e 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinConstructorParametersBinderTests.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinConstructorParametersBinderTests.kt @@ -255,4 +255,5 @@ class KotlinConstructorParametersBinderTests { var stringValue: String? = null } -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinDefaultBindConstructorProviderTests.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinDefaultBindConstructorProviderTests.kt index f772456c499b..9a323124b147 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinDefaultBindConstructorProviderTests.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/context/properties/bind/KotlinDefaultBindConstructorProviderTests.kt @@ -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. @@ -45,89 +45,103 @@ class KotlinDefaultBindConstructorProviderTests { @Test fun `type with primary and secondary annotated constructor should use secondary constructor for binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(ConstructorBindingOnSecondaryWithPrimaryConstructor::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(ConstructorBindingOnSecondaryWithPrimaryConstructor::class.java, false) assertThat(bindConstructor).isNotNull() } @Test fun `type with primary constructor with autowired should not use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(AutowiredPrimaryProperties::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(AutowiredPrimaryProperties::class.java, false) assertThat(bindConstructor).isNull() } @Test fun `type with primary and secondary constructor with autowired should not use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(PrimaryWithAutowiredSecondaryProperties::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(PrimaryWithAutowiredSecondaryProperties::class.java, false) assertThat(bindConstructor).isNull() } @Test fun `type with no param primary constructor and params secondary constructor should not use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(NoParamPrimaryWithParamsSecondaryProperties::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(NoParamPrimaryWithParamsSecondaryProperties::class.java, false) assertThat(bindConstructor).isNull() } @Test fun `type with params primary constructor and no param secondary constructor should use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(ParamsPrimaryWithNoParamSecondaryProperties::class.java, false) + val bindConstructor = this.constructorProvider. + getBindConstructor(ParamsPrimaryWithNoParamSecondaryProperties::class.java, false) assertThat(bindConstructor).isNotNull() } @Test fun `type with autowired secondary constructor should not use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(AutowiredSecondaryProperties::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(AutowiredSecondaryProperties::class.java, false) assertThat(bindConstructor).isNull() } @Test fun `type with autowired primary and constructor binding on secondary constructor should throw exception`() { assertThatIllegalStateException().isThrownBy { - this.constructorProvider.getBindConstructor(ConstructorBindingOnSecondaryAndAutowiredPrimaryProperties::class.java, false) + this.constructorProvider + .getBindConstructor(ConstructorBindingOnSecondaryAndAutowiredPrimaryProperties::class.java, false) } } @Test fun `type with autowired secondary and constructor binding on primary constructor should throw exception`() { assertThatIllegalStateException().isThrownBy { - this.constructorProvider.getBindConstructor(ConstructorBindingOnPrimaryAndAutowiredSecondaryProperties::class.java, false) + this.constructorProvider + .getBindConstructor(ConstructorBindingOnPrimaryAndAutowiredSecondaryProperties::class.java, false) } } @Test fun `type with primary constructor and no annotation should use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(ConstructorBindingPrimaryConstructorNoAnnotation::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(ConstructorBindingPrimaryConstructorNoAnnotation::class.java, false) assertThat(bindConstructor).isNotNull() } @Test fun `type with secondary constructor and no annotation should use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(ConstructorBindingSecondaryConstructorNoAnnotation::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(ConstructorBindingSecondaryConstructorNoAnnotation::class.java, false) assertThat(bindConstructor).isNotNull() } @Test fun `type with multiple constructors`() { - val bindConstructor = this.constructorProvider.getBindConstructor(ConstructorBindingMultipleConstructors::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(ConstructorBindingMultipleConstructors::class.java, false) assertThat(bindConstructor).isNotNull() } @Test fun `type with multiple annotated constructors should throw exception`() { assertThatIllegalStateException().isThrownBy { - this.constructorProvider.getBindConstructor(ConstructorBindingMultipleAnnotatedConstructors::class.java, false) + this.constructorProvider + .getBindConstructor(ConstructorBindingMultipleAnnotatedConstructors::class.java, false) } } @Test fun `type with secondary and primary annotated constructors should throw exception`() { assertThatIllegalStateException().isThrownBy { - this.constructorProvider.getBindConstructor(ConstructorBindingSecondaryAndPrimaryAnnotatedConstructors::class.java, false) + this.constructorProvider + .getBindConstructor(ConstructorBindingSecondaryAndPrimaryAnnotatedConstructors::class.java, false) } } @Test fun `data class with default values should use constructor binding`() { - val bindConstructor = this.constructorProvider.getBindConstructor(ConstructorBindingDataClassWithDefaultValues::class.java, false) + val bindConstructor = this.constructorProvider + .getBindConstructor(ConstructorBindingDataClassWithDefaultValues::class.java, false) assertThat(bindConstructor).isNotNull() } @@ -159,13 +173,15 @@ class KotlinDefaultBindConstructorProviderTests { class AutowiredPrimaryProperties @Autowired constructor(val name: String?, val counter: Int = 42) - class ConstructorBindingOnSecondaryAndAutowiredPrimaryProperties @Autowired constructor(val name: String?, val counter: Int = 42) { + class ConstructorBindingOnSecondaryAndAutowiredPrimaryProperties @Autowired constructor( + val name: String?, val counter: Int = 42) { @ConstructorBinding constructor(@Suppress("UNUSED_PARAMETER") foo: String) : this(foo, 21) } - class ConstructorBindingOnPrimaryAndAutowiredSecondaryProperties @ConstructorBinding constructor(val name: String?, val counter: Int = 42) { + class ConstructorBindingOnPrimaryAndAutowiredSecondaryProperties @ConstructorBinding constructor( + val name: String?, val counter: Int = 42) { @Autowired constructor(@Suppress("UNUSED_PARAMETER") foo: String) : this(foo, 21) @@ -177,7 +193,8 @@ class KotlinDefaultBindConstructorProviderTests { constructor(@Suppress("UNUSED_PARAMETER") foo: String) : this(foo, 21) } - class ConstructorBindingOnPrimaryWithSecondaryConstructor @ConstructorBinding constructor(val name: String?, val counter: Int = 42) { + class ConstructorBindingOnPrimaryWithSecondaryConstructor @ConstructorBinding constructor( + val name: String?, val counter: Int = 42) { constructor(@Suppress("UNUSED_PARAMETER") foo: String) : this(foo, 21) } @@ -217,7 +234,8 @@ class KotlinDefaultBindConstructorProviderTests { } - class ConstructorBindingSecondaryAndPrimaryAnnotatedConstructors @ConstructorBinding constructor(val name: String?, val counter: Int = 42) { + class ConstructorBindingSecondaryAndPrimaryAnnotatedConstructors @ConstructorBinding constructor( + val name: String?, val counter: Int = 42) { @ConstructorBinding constructor(@Suppress("UNUSED_PARAMETER") foo: String) : this(foo, 21) @@ -226,4 +244,5 @@ class KotlinDefaultBindConstructorProviderTests { data class ConstructorBindingDataClassWithDefaultValues(val name: String = "Joan", val counter: Int = 42) -} \ No newline at end of file +} + diff --git a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/kotlinsample/TestKotlinApplication.kt b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/kotlinsample/TestKotlinApplication.kt index 017a7d52a3cb..b9679f79349e 100644 --- a/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/kotlinsample/TestKotlinApplication.kt +++ b/spring-boot-project/spring-boot/src/test/kotlin/org/springframework/boot/kotlinsample/TestKotlinApplication.kt @@ -9,3 +9,4 @@ open class TestKotlinApplication fun main(args: Array) { runApplication(*args) } + diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webflux-coroutines/src/test/kotlin/smoketest/coroutines/CoroutinesControllerTests.kt b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webflux-coroutines/src/test/kotlin/smoketest/coroutines/CoroutinesControllerTests.kt index 440cea3a4367..13e1b31aa76a 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webflux-coroutines/src/test/kotlin/smoketest/coroutines/CoroutinesControllerTests.kt +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-webflux-coroutines/src/test/kotlin/smoketest/coroutines/CoroutinesControllerTests.kt @@ -3,7 +3,7 @@ package smoketest.coroutines import org.junit.jupiter.api.Test import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest -import org.springframework.boot.test.context.SpringBootTest.* +import org.springframework.boot.test.context.SpringBootTest.WebEnvironment import org.springframework.http.MediaType import org.springframework.test.web.reactive.server.WebTestClient import org.springframework.test.web.reactive.server.expectBody diff --git a/src/detekt/config.yml b/src/detekt/config.yml new file mode 100644 index 000000000000..3cf66966fff1 --- /dev/null +++ b/src/detekt/config.yml @@ -0,0 +1,25 @@ +config: + validation: true + warningsAsErrors: true +console-reports: + active: true + exclude: + - 'ProjectStatisticsReport' + - 'ComplexityReport' + - 'NotificationReport' + - 'FindingsReport' + - 'FileBasedFindingsReport' +processors: + active: false +naming: + MatchingDeclarationName: + active: true +style: + MaxLineLength: + active: true + NewLineAtEndOfFile: + active: true + UnusedImports: + active: true + WildcardImport: + active: true From 9a2d8c589e044a8640703f4e7ccc75274863efa8 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 23 May 2025 12:30:08 +0100 Subject: [PATCH 003/711] Clarify how to use Pushgateway auto-configuration Closes gh-44392 --- .../docs/antora/modules/reference/pages/actuator/metrics.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc index 866f6fb1a52d..86128a6b7e91 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc @@ -552,7 +552,7 @@ Please check the https://prometheus.io/docs/prometheus/latest/feature_flags/#exe For ephemeral or batch jobs that may not exist long enough to be scraped, you can use https://github.com/prometheus/pushgateway[Prometheus Pushgateway] support to expose the metrics to Prometheus. -NOTE: The Prometheus Pushgateway only works with the deprecated Prometheus simpleclient for now, until the Prometheus 1.x client adds support for it. +NOTE: Auto-configuration for the Prometheus Pushgateway only works with the deprecated Prometheus simpleclient. To switch to the simpleclient, remove `io.micrometer:micrometer-registry-prometheus` from your project and add `io.micrometer:micrometer-registry-prometheus-simpleclient` instead. To enable Prometheus Pushgateway support, add the following dependency to your project: @@ -565,7 +565,7 @@ To enable Prometheus Pushgateway support, add the following dependency to your p ---- -When the Prometheus Pushgateway dependency is present on the classpath and the configprop:management.prometheus.metrics.export.pushgateway.enabled[] property is set to `true`, a javadoc:org.springframework.boot.actuate.metrics.export.prometheus.PrometheusPushGatewayManager[] bean is auto-configured. +When this Prometheus Pushgateway dependency is present on the classpath and the configprop:management.prometheus.metrics.export.pushgateway.enabled[] property is set to `true`, a javadoc:org.springframework.boot.actuate.metrics.export.prometheus.PrometheusPushGatewayManager[] bean is auto-configured. This manages the pushing of metrics to a Prometheus Pushgateway. You can tune the javadoc:org.springframework.boot.actuate.metrics.export.prometheus.PrometheusPushGatewayManager[] by using properties under `management.prometheus.metrics.export.pushgateway`. From 380bfa398f2ba9f7afe43e2b7e5a13240a60d7cc Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Fri, 23 May 2025 13:15:59 +0700 Subject: [PATCH 004/711] Enforce static @ConfigurationPropertyBinding @Bean methods See gh-45640 Signed-off-by: Tran Ngoc Nhan --- .../boot/build/architecture/ArchitectureRules.java | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/architecture/ArchitectureRules.java b/buildSrc/src/main/java/org/springframework/boot/build/architecture/ArchitectureRules.java index 3dc1dae043f3..a097c2ce2a2e 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/architecture/ArchitectureRules.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/architecture/ArchitectureRules.java @@ -59,6 +59,7 @@ * @author Scott Frederick * @author Ivan Malutin * @author Phillip Webb + * @author Ngoc Nhan */ final class ArchitectureRules { @@ -88,6 +89,7 @@ static List standard() { rules.add(noClassesShouldCallStringToLowerCaseWithoutLocale()); rules.add(conditionalOnMissingBeanShouldNotSpecifyOnlyATypeThatIsTheSameAsMethodReturnType()); rules.add(enumSourceShouldNotSpecifyOnlyATypeThatIsTheSameAsMethodParameterType()); + rules.add(allConfigurationPropertiesBindingBeanMethodsShouldBeStatic()); return List.copyOf(rules); } @@ -230,6 +232,14 @@ private static void notSpecifyOnlyATypeThatIsTheSameAsTheMethodParameterType(Jav } } + private static ArchRule allConfigurationPropertiesBindingBeanMethodsShouldBeStatic() { + return methodsThatAreAnnotatedWith("org.springframework.context.annotation.Bean").and() + .areAnnotatedWith("org.springframework.boot.context.properties.ConfigurationPropertiesBinding") + .should() + .beStatic() + .allowEmptyShould(true); + } + private static boolean containsOnlySingleType(JavaType[] types, JavaType type) { return types.length == 1 && type.equals(types[0]); } From c9bf87be7da7b47e29d3bcd72b884ada7a505f41 Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Fri, 23 May 2025 01:17:06 +0700 Subject: [PATCH 005/711] Make all @ConfigurationPropertiesBinding @Bean methods static See gh-45640 Signed-off-by: Tran Ngoc Nhan --- .../autoconfigure/flyway/FlywayAutoConfiguration.java | 2 +- .../servlet/SecurityAutoConfigurationTests.java | 2 +- .../properties/ConfigurationPropertiesTests.java | 10 +++++----- .../properties/ConversionServiceDeducerTests.java | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java index bf20e885d9b9..90776bd26bca 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/flyway/FlywayAutoConfiguration.java @@ -112,7 +112,7 @@ public class FlywayAutoConfiguration { @Bean @ConfigurationPropertiesBinding - public StringOrNumberToMigrationVersionConverter stringOrNumberMigrationVersionConverter() { + public static StringOrNumberToMigrationVersionConverter stringOrNumberMigrationVersionConverter() { return new StringOrNumberToMigrationVersionConverter(); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityAutoConfigurationTests.java index 43aea7e4a11a..79ae9792c99d 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/servlet/SecurityAutoConfigurationTests.java @@ -264,7 +264,7 @@ static class ConverterConfiguration { @Bean @ConfigurationPropertiesBinding - Converter targetTypeConverter() { + static Converter targetTypeConverter() { return new Converter<>() { @Override diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesTests.java index f666137e211f..9ff182223f49 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConfigurationPropertiesTests.java @@ -1560,7 +1560,7 @@ static class PersonConverterConfiguration { @Bean @ConfigurationPropertiesBinding - Converter personConverter() { + static Converter personConverter() { return new PersonConverter(); } @@ -1571,7 +1571,7 @@ static class AlienConverterConfiguration { @Bean @ConfigurationPropertiesBinding - Converter alienConverter() { + static Converter alienConverter() { return new AlienConverter(); } @@ -1592,7 +1592,7 @@ static class GenericConverterConfiguration { @Bean @ConfigurationPropertiesBinding - GenericConverter genericPersonConverter() { + static GenericConverter genericPersonConverter() { return new GenericPersonConverter(); } @@ -1603,7 +1603,7 @@ static class FormatterConfiguration { @Bean @ConfigurationPropertiesBinding - Formatter personFormatter() { + static Formatter personFormatter() { return new PersonFormatter(); } @@ -3031,7 +3031,7 @@ static class WithCustomConverterAndObjectToObjectMethodConfiguration { @Bean @ConfigurationPropertiesBinding - WithObjectToObjectMethodConverter withObjectToObjectMethodConverter() { + static WithObjectToObjectMethodConverter withObjectToObjectMethodConverter() { return new WithObjectToObjectMethodConverter(); } diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConversionServiceDeducerTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConversionServiceDeducerTests.java index 0027cb1d7cfe..e861a8011d67 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConversionServiceDeducerTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/ConversionServiceDeducerTests.java @@ -102,13 +102,13 @@ static class CustomConverterConfiguration { @Bean @ConfigurationPropertiesBinding - TestConverter testConverter() { + static TestConverter testConverter() { return new TestConverter(); } @Bean @ConfigurationPropertiesBinding - StringConverter stringConverter() { + static StringConverter stringConverter() { return new StringConverter(); } From cd6b0fe7c30e6ee3c20007d68e931ade4702a093 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 23 May 2025 14:14:14 +0100 Subject: [PATCH 006/711] Add to javadoc how applications can use Configurer classes Closes gh-42878 --- .../amqp/AbstractConnectionFactoryConfigurer.java | 5 ++--- ...stractRabbitListenerContainerFactoryConfigurer.java | 6 +++--- .../amqp/CachingConnectionFactoryConfigurer.java | 9 +++++++-- ...DirectRabbitListenerContainerFactoryConfigurer.java | 10 +++++++--- .../amqp/RabbitConnectionFactoryBeanConfigurer.java | 9 +++++++-- .../amqp/RabbitStreamTemplateConfigurer.java | 6 +++++- .../autoconfigure/amqp/RabbitTemplateConfigurer.java | 9 +++++++-- ...SimpleRabbitListenerContainerFactoryConfigurer.java | 10 +++++++--- .../DefaultJmsListenerContainerFactoryConfigurer.java | 7 ++++++- ...currentKafkaListenerContainerFactoryConfigurer.java | 9 +++++++-- .../web/client/RestClientBuilderConfigurer.java | 6 +++++- .../web/client/RestTemplateBuilderConfigurer.java | 6 +++++- 12 files changed, 68 insertions(+), 24 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractConnectionFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractConnectionFactoryConfigurer.java index d5f1a12c6666..598ba7e7b7d0 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractConnectionFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractConnectionFactoryConfigurer.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. @@ -24,8 +24,7 @@ import org.springframework.util.Assert; /** - * Configures {@link AbstractConnectionFactory Rabbit ConnectionFactory} with sensible - * defaults. + * Base class for configurers of sub-classes of {@link AbstractConnectionFactory}. * * @param the connection factory type. * @author Chris Bono diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractRabbitListenerContainerFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractRabbitListenerContainerFactoryConfigurer.java index dd91f59e90bf..b4e73da7eb40 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractRabbitListenerContainerFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/AbstractRabbitListenerContainerFactoryConfigurer.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. @@ -22,7 +22,6 @@ import org.springframework.amqp.rabbit.config.AbstractRabbitListenerContainerFactory; import org.springframework.amqp.rabbit.config.RetryInterceptorBuilder; import org.springframework.amqp.rabbit.connection.ConnectionFactory; -import org.springframework.amqp.rabbit.listener.RabbitListenerContainerFactory; import org.springframework.amqp.rabbit.retry.MessageRecoverer; import org.springframework.amqp.rabbit.retry.RejectAndDontRequeueRecoverer; import org.springframework.amqp.support.converter.MessageConverter; @@ -31,7 +30,8 @@ import org.springframework.util.Assert; /** - * Configure {@link RabbitListenerContainerFactory} with sensible defaults. + * Base class for configurers of sub-classes of + * {@link AbstractRabbitListenerContainerFactory}. * * @param the container factory type. * @author Gary Russell diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/CachingConnectionFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/CachingConnectionFactoryConfigurer.java index 677ddfc3c266..ece1a62532bf 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/CachingConnectionFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/CachingConnectionFactoryConfigurer.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. @@ -22,7 +22,12 @@ import org.springframework.boot.context.properties.PropertyMapper; /** - * Configures Rabbit {@link CachingConnectionFactory} with sensible defaults. + * Configures Rabbit {@link CachingConnectionFactory} with sensible defaults tuned using + * configuration properties. + *

    + * Can be injected into application code and used to define a custom + * {@code CachingConnectionFactory} whose configuration is based upon that produced by + * auto-configuration. * * @author Chris Bono * @author Moritz Halbritter diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/DirectRabbitListenerContainerFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/DirectRabbitListenerContainerFactoryConfigurer.java index 73c9c35b3fdf..070d5f8c22a0 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/DirectRabbitListenerContainerFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/DirectRabbitListenerContainerFactoryConfigurer.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. @@ -21,8 +21,12 @@ import org.springframework.boot.context.properties.PropertyMapper; /** - * Configure {@link DirectRabbitListenerContainerFactoryConfigurer} with sensible - * defaults. + * Configure {@link DirectRabbitListenerContainerFactory} with sensible defaults tuned + * using configuration properties. + *

    + * Can be injected into application code and used to define a custom + * {@code DirectRabbitListenerContainerFactory} whose configuration is based upon that + * produced by auto-configuration. * * @author Gary Russell * @author Stephane Nicoll diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java index 2f59e2d8faed..fd89e6799725 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitConnectionFactoryBeanConfigurer.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. @@ -31,7 +31,12 @@ import org.springframework.util.unit.DataSize; /** - * Configures {@link RabbitConnectionFactoryBean} with sensible defaults. + * Configures {@link RabbitConnectionFactoryBean} with sensible defaults tuned using + * configuration properties. + *

    + * Can be injected into application code and used to define a custom + * {@code RabbitConnectionFactoryBean} whose configuration is based upon that produced by + * auto-configuration. * * @author Chris Bono * @author Moritz Halbritter diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitStreamTemplateConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitStreamTemplateConfigurer.java index d323784ac1b1..5e24676e78a2 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitStreamTemplateConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitStreamTemplateConfigurer.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. @@ -23,6 +23,10 @@ /** * Configure {@link RabbitStreamTemplate} with sensible defaults. + *

    + * Can be injected into application code and used to define a custom + * {@code RabbitStreamTemplate} whose configuration is based upon that produced by + * auto-configuration. * * @author Eddú Meléndez * @since 2.7.0 diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.java index d002323c7416..d555c1a350b5 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/RabbitTemplateConfigurer.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. @@ -29,7 +29,12 @@ import org.springframework.util.CollectionUtils; /** - * Configure {@link RabbitTemplate} with sensible defaults. + * Configure {@link RabbitTemplate} with sensible defaults tuned using configuration + * properties. + *

    + * Can be injected into application code and used to define a custom + * {@code RabbitTemplateConfigurer} whose configuration is based upon that produced by + * auto-configuration. * * @author Stephane Nicoll * @author Yanming Zhou diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java index b66a17c96c5e..bf9597fec8c5 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/amqp/SimpleRabbitListenerContainerFactoryConfigurer.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. @@ -21,8 +21,12 @@ import org.springframework.boot.context.properties.PropertyMapper; /** - * Configure {@link SimpleRabbitListenerContainerFactoryConfigurer} with sensible - * defaults. + * Configure {@link SimpleRabbitListenerContainerFactory} with sensible defaults tuned + * using configuration properties. + *

    + * Can be injected into application code and used to define a custom + * {@code SimpleRabbitListenerContainerFactory} whose configuration is based upon that + * produced by auto-configuration. * * @author Stephane Nicoll * @author Gary Russell diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/DefaultJmsListenerContainerFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/DefaultJmsListenerContainerFactoryConfigurer.java index 41f15585b6fa..fb4153a13b99 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/DefaultJmsListenerContainerFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jms/DefaultJmsListenerContainerFactoryConfigurer.java @@ -31,7 +31,12 @@ import org.springframework.util.Assert; /** - * Configure {@link DefaultJmsListenerContainerFactory} with sensible defaults. + * Configure {@link DefaultJmsListenerContainerFactory} with sensible defaults tuned using + * configuration properties. + *

    + * Can be injected into application code and used to define a custom + * {@code DefaultJmsListenerContainerFactory} whose configuration is based upon that + * produced by auto-configuration. * * @author Stephane Nicoll * @author Eddú Meléndez diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/ConcurrentKafkaListenerContainerFactoryConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/ConcurrentKafkaListenerContainerFactoryConfigurer.java index d4c4ebf55d34..c83861df6bad 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/ConcurrentKafkaListenerContainerFactoryConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/ConcurrentKafkaListenerContainerFactoryConfigurer.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. @@ -38,7 +38,12 @@ import org.springframework.kafka.transaction.KafkaAwareTransactionManager; /** - * Configure {@link ConcurrentKafkaListenerContainerFactory} with sensible defaults. + * Configure {@link ConcurrentKafkaListenerContainerFactory} with sensible defaults tuned + * using configuration properties. + *

    + * Can be injected into application code and used to define a custom + * {@code ConcurrentKafkaListenerContainerFactory} whose configuration is based upon that + * produced by auto-configuration. * * @author Gary Russell * @author Eddú Meléndez diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java index 3fe41101b7ed..7860cbc5fe14 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestClientBuilderConfigurer.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. @@ -24,6 +24,10 @@ /** * Configure {@link Builder RestClient.Builder} with sensible defaults. + *

    + * Can be injected into application code and used to define a custom + * {@code RestClient.Builder} whose configuration is based upon that produced by + * auto-configuration. * * @author Moritz Halbritter * @since 3.2.0 diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java index 55e3351b85ff..56a371da37cd 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/client/RestTemplateBuilderConfigurer.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2020 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,10 @@ /** * Configure {@link RestTemplateBuilder} with sensible defaults. + *

    + * Can be injected into application code and used to define a custom + * {@code RestTemplateBuilder} whose configuration is based upon that produced by + * auto-configuration. * * @author Stephane Nicoll * @since 2.4.0 From 0fea1a00e056b95fbaf1ff61dd9a57ff9383a50a Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Fri, 23 May 2025 10:56:54 +0800 Subject: [PATCH 007/711] Reuse properties from field See gh-45642 Signed-off-by: Yanming Zhou --- .../boot/autoconfigure/kafka/KafkaAutoConfiguration.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfiguration.java index f933157274cc..bdd94d0386bc 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfiguration.java @@ -88,8 +88,8 @@ public class KafkaAutoConfiguration { @Bean @ConditionalOnMissingBean(KafkaConnectionDetails.class) - PropertiesKafkaConnectionDetails kafkaConnectionDetails(KafkaProperties properties) { - return new PropertiesKafkaConnectionDetails(properties); + PropertiesKafkaConnectionDetails kafkaConnectionDetails() { + return new PropertiesKafkaConnectionDetails(this.properties); } @Bean From 4c3c7b45437b9ad09ccec5a6a8cbaae1c099dc19 Mon Sep 17 00:00:00 2001 From: Dmytro Nosan Date: Fri, 23 May 2025 16:53:04 +0300 Subject: [PATCH 008/711] Add WebMvcTestOAuth2Tests See gh-45654 Signed-off-by: Dmytro Nosan --- .../build.gradle | 1 + .../mockmvc/WebMvcTestOAuth2Tests.java | 48 +++++++++++++++++++ 2 files changed, 49 insertions(+) create mode 100644 spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestOAuth2Tests.java diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index 43f8fd5e2b36..da0d388f839f 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -110,6 +110,7 @@ dependencies { testImplementation("org.mockito:mockito-junit-jupiter") testImplementation("org.skyscreamer:jsonassert") testImplementation("org.springframework:spring-core-test") + testImplementation("org.springframework.boot:spring-boot-starter-oauth2-client") testImplementation("org.springframework.hateoas:spring-hateoas") testImplementation("org.springframework.plugin:spring-plugin-core") testImplementation("org.thymeleaf:thymeleaf") diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestOAuth2Tests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestOAuth2Tests.java new file mode 100644 index 000000000000..0de750598e89 --- /dev/null +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestOAuth2Tests.java @@ -0,0 +1,48 @@ +/* + * 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.test.autoconfigure.web.servlet.mockmvc; + +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrlPattern; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +/** + * Tests for {@link WebMvcTest @WebMvcTest} with OAuth2. + * + * @author Dmytro Nosan + */ +@WebMvcTest(controllers = ExampleController1.class, + properties = { "spring.security.oauth2.client.registration.test.client-id=test", + "spring.security.oauth2.client.registration.test.authorization-grant-type=authorization-code", + "spring.security.oauth2.client.provider.test.authorization-uri=https://auth.example.org" }) +class WebMvcTestOAuth2Tests { + + @Autowired + private MockMvc mockMvc; + + @Test + void shouldRedirectToLogin() throws Exception { + this.mockMvc.perform(get("/one")).andExpect(status().isFound()).andExpect(redirectedUrlPattern("**/login")); + } + +} From c07a67706ba328999c8ded5831b0529a13ad0e82 Mon Sep 17 00:00:00 2001 From: Dmytro Nosan Date: Fri, 23 May 2025 16:43:19 +0300 Subject: [PATCH 009/711] Add support for SAML2 with @WebMvcTest See gh-45650 Signed-off-by: Dmytro Nosan --- .../build.gradle | 8 +++ ...e.web.servlet.AutoConfigureMockMvc.imports | 1 + .../servlet/mockmvc/WebMvcTestSaml2Tests.java | 51 +++++++++++++++++++ 3 files changed, 60 insertions(+) create mode 100644 spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestSaml2Tests.java diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index 381c6d7cbde8..cfae2dc88bcb 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -114,11 +114,19 @@ dependencies { testImplementation("org.junit.platform:junit-platform-launcher") testImplementation("org.mockito:mockito-core") testImplementation("org.mockito:mockito-junit-jupiter") + testImplementation("org.opensaml:opensaml-core:4.0.1") + testImplementation("org.opensaml:opensaml-saml-api:4.0.1") + testImplementation("org.opensaml:opensaml-saml-impl:4.0.1") testImplementation("org.skyscreamer:jsonassert") testImplementation("org.springframework:spring-core-test") testImplementation("org.springframework.boot:spring-boot-starter-oauth2-client") testImplementation("org.springframework.hateoas:spring-hateoas") testImplementation("org.springframework.plugin:spring-plugin-core") + testImplementation("org.springframework.security:spring-security-saml2-service-provider") { + exclude group: "org.opensaml", module: "opensaml-core" + exclude group: "org.opensaml", module: "opensaml-saml-api" + exclude group: "org.opensaml", module: "opensaml-saml-impl" + } testImplementation("org.thymeleaf:thymeleaf") } diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc.imports b/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc.imports index 5e7b2b657372..f691c4fa7f9b 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc.imports +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc.imports @@ -4,6 +4,7 @@ org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConf org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration +org.springframework.boot.autoconfigure.security.saml2.Saml2RelyingPartyAutoConfiguration org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestSaml2Tests.java b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestSaml2Tests.java new file mode 100644 index 000000000000..ff67b53e86fd --- /dev/null +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/test/java/org/springframework/boot/test/autoconfigure/web/servlet/mockmvc/WebMvcTestSaml2Tests.java @@ -0,0 +1,51 @@ +/* + * 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.test.autoconfigure.web.servlet.mockmvc; + +import org.junit.jupiter.api.Test; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.web.servlet.MockMvc; + +import static org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders.get; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.redirectedUrlPattern; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +/** + * Tests for {@link WebMvcTest @WebMvcTest} with SAML2. + * + * @author Dmytro Nosan + */ +@WebMvcTest(controllers = ExampleController1.class, properties = { + "spring.security.saml2.relyingparty.registration.test.entity-id=relyingparty", + "spring.security.saml2.relyingparty.registration.test.assertingparty.entity-id=assertingparty", + "spring.security.saml2.relyingparty.registration.test.assertingparty.singlesignon.url=https://example.com", + "spring.security.saml2.relyingparty.registration.test.assertingparty.singlesignon.sign-request=false" }) +class WebMvcTestSaml2Tests { + + @Autowired + private MockMvc mockMvc; + + @Test + void shouldRedirectToLogin() throws Exception { + this.mockMvc.perform(get("/one")) + .andExpect(status().isFound()) + .andExpect(redirectedUrlPattern("**/saml2/authenticate?registrationId=test")); + } + +} From 43d2abbcc6284711070fcf9eb20249cedb0fe31c Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Fri, 23 May 2025 11:01:55 +0800 Subject: [PATCH 010/711] Harmonize Otlp*Configurations See gh-45643 Signed-off-by: Yanming Zhou --- .../autoconfigure/logging/otlp/OtlpLoggingConfigurations.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/otlp/OtlpLoggingConfigurations.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/otlp/OtlpLoggingConfigurations.java index 14b491bd237d..45156b045c3f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/otlp/OtlpLoggingConfigurations.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/logging/otlp/OtlpLoggingConfigurations.java @@ -38,9 +38,6 @@ */ final class OtlpLoggingConfigurations { - private OtlpLoggingConfigurations() { - } - @Configuration(proxyBeanMethods = false) static class ConnectionDetails { From 7840a330e6d64e569be2ad4a560c7ff0a1762156 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Sun, 25 May 2025 09:45:27 +0200 Subject: [PATCH 011/711] Polish "Harmonize Otlp*Configurations" See gh-45643 --- .../autoconfigure/tracing/otlp/OtlpTracingConfigurations.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConfigurations.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConfigurations.java index 6f0494379b8a..f59b600407ee 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConfigurations.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/tracing/otlp/OtlpTracingConfigurations.java @@ -37,7 +37,7 @@ * @author Moritz Halbritter * @author Eddú Meléndez */ -class OtlpTracingConfigurations { +final class OtlpTracingConfigurations { @Configuration(proxyBeanMethods = false) static class ConnectionDetails { From e4e3cd483e94666154f8dcc81659abfa6f166a9d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 26 May 2025 09:54:13 +0200 Subject: [PATCH 012/711] Upgrade to Jedis 6.6.0 Closes gh-45669 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f15581bb0f8e..3f5f2faa283e 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1008,7 +1008,7 @@ bom { releaseNotes("https://github.com/hunterhacker/jdom/releases/tag/JDOM-{version}") } } - library("Jedis", "5.2.0") { + library("Jedis", "6.0.0") { prohibit { contains "-beta" because "we don't want beta dependencies" From 1d4e68361bfb923f338513efd77e3d4881ffe1c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 26 May 2025 10:05:16 +0200 Subject: [PATCH 013/711] Upgrade to Lettuce 6.6.0.RELEASE Closes gh-45670 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3f5f2faa283e..f555afaa93b5 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1255,7 +1255,7 @@ bom { releaseNotes("https://github.com/Kotlin/kotlinx.serialization/releases/tag/v{version}") } } - library("Lettuce", "6.5.5.RELEASE") { + library("Lettuce", "6.6.0.RELEASE") { prohibit { contains ".BETA" because "we don't want betas" From 2e37b5b883e2391f3533ce121c98ce042e9d2994 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 26 May 2025 10:09:11 +0200 Subject: [PATCH 014/711] Upgrade to MongoDB 5.5.0 Closes gh-45660 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f555afaa93b5..b950f0fbe4d7 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1595,7 +1595,7 @@ bom { releaseNotes("https://github.com/mockito/mockito/releases/tag/v{version}") } } - library("MongoDB", "5.4.0") { + library("MongoDB", "5.5.0") { group("org.mongodb") { bom("mongodb-driver-bom") } From 2bbe0dfae5ddb4bff82ce82a5532f2d419ad4e45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 26 May 2025 15:47:15 +0200 Subject: [PATCH 015/711] Upgrade to Gradle 8.14.1 Closes gh-45671 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ca025c83a7cc..002b867c48b3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 2935bac33a5770f5eb397e13e82d62cf0ccb978c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 26 May 2025 16:07:16 +0200 Subject: [PATCH 016/711] Build against Java 24 GA Closes gh-45680 --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8d7b1c544844..0ac08664fb41 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -26,7 +26,6 @@ jobs: - version: 23 toolchain: true - version: 24 - early-access: true toolchain: true exclude: - os: From 7448f8c73a94bb3531fab0756d029d3dff8be95b Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Mon, 26 May 2025 20:45:22 +0700 Subject: [PATCH 017/711] Document use of git-commit-id-maven-plugin consistently See gh-45677 Signed-off-by: Tran Ngoc Nhan --- .../boot/build/antora/antora-asciidoc-attributes.properties | 1 + .../src/docs/antora/modules/how-to/pages/build.adoc | 2 +- .../src/docs/antora/modules/maven-plugin/pages/using.adoc | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties b/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties index d0fb5f6cae22..3da569d0a4f4 100644 --- a/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties +++ b/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties @@ -9,6 +9,7 @@ url-ant-docs=https://ant.apache.org/manual url-buildpacks-docs=https://buildpacks.io/docs url-cyclonedx-docs-gradle-plugin=https://github.com/CycloneDX/cyclonedx-gradle-plugin url-cyclonedx-docs-maven-plugin=https://github.com/CycloneDX/cyclonedx-maven-plugin +url-git-commit-id-maven-plugin=https://github.com/git-commit-id/git-commit-id-maven-plugin url-download-liberica-nik=https://bell-sw.com/pages/downloads/native-image-kit/#/nik-22-17 url-dynatrace-docs=https://docs.dynatrace.com/docs url-dynatrace-docs-shortlink={url-dynatrace-docs}/shortlink diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/how-to/pages/build.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/how-to/pages/build.adoc index 4ad61bd3a688..b69db987adea 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/how-to/pages/build.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/how-to/pages/build.adoc @@ -56,7 +56,7 @@ TIP: See the xref:gradle-plugin:integrating-with-actuator.adoc[Spring Boot Gradl Both Maven and Gradle allow generating a `git.properties` file containing information about the state of your `git` source code repository when the project was built. For Maven users, the `spring-boot-starter-parent` POM includes a pre-configured plugin to generate a `git.properties` file. -To use it, add the following declaration for the https://github.com/git-commit-id/git-commit-id-maven-plugin[`Git Commit Id Plugin`] to your POM: +To use it, add the following declaration for the {url-git-commit-id-maven-plugin}[`Git Commit Id Plugin`] to your POM: [source,xml] ---- diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/antora/modules/maven-plugin/pages/using.adoc b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/antora/modules/maven-plugin/pages/using.adoc index ad4764953fcb..e54cc1a15b13 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/antora/modules/maven-plugin/pages/using.adoc +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/docs/antora/modules/maven-plugin/pages/using.adoc @@ -12,7 +12,7 @@ This dependency management lets you omit `` tags for those dependencies * An execution of the xref:maven-plugin:packaging.adoc#packaging.repackage-goal[`repackage` goal] with a `repackage` execution id. * A `native` profile that configures the build to be able to generate a Native image. * Sensible https://maven.apache.org/plugins/maven-resources-plugin/examples/filter.html[resource filtering]. -* Sensible plugin configuration (https://github.com/ktoso/maven-git-commit-id-plugin[Git commit ID], and https://maven.apache.org/plugins/maven-shade-plugin/[shade]). +* Sensible plugin configuration ({url-git-commit-id-maven-plugin}[`Git Commit Id Plugin`], and https://maven.apache.org/plugins/maven-shade-plugin/[shade]). * Sensible resource filtering for `application.properties` and `application.yml` including profile-specific files (for example, `application-dev.properties` and `application-dev.yml`) NOTE: Since the `application.properties` and `application.yml` files accept Spring style placeholders (`${...}`), the Maven filtering is changed to use `@..@` placeholders. From 3eaed90d946dc2d967be50e8754a7d5c6664d724 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julio=20G=C3=B3mez=20D=C3=ADaz?= Date: Mon, 26 May 2025 16:36:49 +0200 Subject: [PATCH 018/711] Fix artifactId of prometheus-metrics-exporter-pushgateway in example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See gh-45684 Signed-off-by: Julio Gómez Díaz --- .../docs/antora/modules/reference/pages/actuator/metrics.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc index ca9cbfd65c3c..9dfa13ff7ca8 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/actuator/metrics.adoc @@ -559,7 +559,7 @@ To enable Prometheus Pushgateway support, add the following dependency to your p ---- io.prometheus - io.prometheus:prometheus-metrics-exporter-pushgateway + prometheus-metrics-exporter-pushgateway ---- From 0c7da705d0a13dcc08b6bb7c9d7da31583b1292d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 26 May 2025 16:57:11 +0200 Subject: [PATCH 019/711] Remove accident use of @Nullable in GraphQL tests Closes gh-45406 --- .../boot/autoconfigure/graphql/GraphQlTestDataFetchers.java | 5 +---- .../GraphQlWebFluxSecurityAutoConfigurationTests.java | 2 -- .../GraphQlWebMvcSecurityAutoConfigurationTests.java | 2 -- 3 files changed, 1 insertion(+), 8 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlTestDataFetchers.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlTestDataFetchers.java index 7e42d04cc450..de1ec46e1915 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlTestDataFetchers.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/GraphQlTestDataFetchers.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. @@ -22,8 +22,6 @@ import graphql.schema.DataFetcher; import reactor.core.publisher.Flux; -import org.springframework.lang.Nullable; - /** * Test utility class holding {@link DataFetcher} implementations. * @@ -48,7 +46,6 @@ public static DataFetcher> getBooksOnSaleDataFetcher() { return (environment) -> getBooksOnSale(environment.getArgument("minPages")); } - @Nullable public static Book getBookById(String id) { return books.stream().filter((book) -> book.getId().equals(id)).findFirst().orElse(null); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebFluxSecurityAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebFluxSecurityAutoConfigurationTests.java index 626fd65fe636..83b6d98f2cc6 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebFluxSecurityAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebFluxSecurityAutoConfigurationTests.java @@ -41,7 +41,6 @@ import org.springframework.graphql.execution.ReactiveSecurityDataFetcherExceptionResolver; import org.springframework.graphql.execution.RuntimeWiringConfigurer; import org.springframework.http.MediaType; -import org.springframework.lang.Nullable; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.config.annotation.method.configuration.EnableReactiveMethodSecurity; import org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity; @@ -168,7 +167,6 @@ BookService bookService() { static class BookService { @PreAuthorize("hasRole('USER')") - @Nullable Mono getBookdById(String id) { return Mono.justOrEmpty(GraphQlTestDataFetchers.getBookById(id)); } diff --git a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebMvcSecurityAutoConfigurationTests.java b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebMvcSecurityAutoConfigurationTests.java index fafbbe5644fb..4bfbe4ed6ba3 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebMvcSecurityAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/graphql/security/GraphQlWebMvcSecurityAutoConfigurationTests.java @@ -37,7 +37,6 @@ import org.springframework.graphql.execution.RuntimeWiringConfigurer; import org.springframework.graphql.execution.SecurityDataFetcherExceptionResolver; import org.springframework.http.MediaType; -import org.springframework.lang.Nullable; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity; @@ -160,7 +159,6 @@ BookService bookService() { static class BookService { @PreAuthorize("hasRole('USER')") - @Nullable Book getBookdById(String id) { return GraphQlTestDataFetchers.getBookById(id); } From f799fc4777149502c95d54d56ad92bdee185f16d Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 27 May 2025 08:09:10 +0100 Subject: [PATCH 020/711] Remove implicit deployment of bom projects --- .../java/org/springframework/boot/build/bom/BomPlugin.java | 2 -- .../boot/build/bom/BomPluginIntegrationTests.java | 7 +++++++ .../spring-boot-launch-script-tests/build.gradle | 1 - 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java index bb100034e16f..9c5c4b358899 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java @@ -34,7 +34,6 @@ import org.gradle.api.publish.maven.MavenPublication; import org.gradle.api.tasks.TaskProvider; -import org.springframework.boot.build.DeployedPlugin; import org.springframework.boot.build.MavenRepositoryPlugin; import org.springframework.boot.build.bom.Library.Group; import org.springframework.boot.build.bom.Library.Module; @@ -55,7 +54,6 @@ public class BomPlugin implements Plugin { @Override public void apply(Project project) { PluginContainer plugins = project.getPlugins(); - plugins.apply(DeployedPlugin.class); plugins.apply(MavenRepositoryPlugin.class); plugins.apply(JavaPlatformPlugin.class); JavaPlatformExtension javaPlatform = project.getExtensions().getByType(JavaPlatformExtension.class); diff --git a/buildSrc/src/test/java/org/springframework/boot/build/bom/BomPluginIntegrationTests.java b/buildSrc/src/test/java/org/springframework/boot/build/bom/BomPluginIntegrationTests.java index ad86cc204e21..cf3c8ced8cca 100644 --- a/buildSrc/src/test/java/org/springframework/boot/build/bom/BomPluginIntegrationTests.java +++ b/buildSrc/src/test/java/org/springframework/boot/build/bom/BomPluginIntegrationTests.java @@ -55,6 +55,7 @@ void libraryModulesAreIncludedInDependencyManagementOfGeneratedPom() throws IOEx try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('ActiveMQ', '5.15.10') {"); @@ -91,6 +92,7 @@ void libraryPluginsAreIncludedInPluginManagementOfGeneratedPom() throws IOExcept try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('Flyway', '6.0.8') {"); @@ -118,6 +120,7 @@ void libraryImportsAreIncludedInDependencyManagementOfGeneratedPom() throws Exce try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('Jackson Bom', '2.10.0') {"); @@ -144,6 +147,7 @@ void moduleExclusionsAreIncludedInDependencyManagementOfGeneratedPom() throws IO try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('MySQL', '8.0.18') {"); @@ -177,6 +181,7 @@ void moduleTypesAreIncludedInDependencyManagementOfGeneratedPom() throws IOExcep try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('Elasticsearch', '7.15.2') {"); @@ -208,6 +213,7 @@ void moduleClassifiersAreIncludedInDependencyManagementOfGeneratedPom() throws I try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('Kafka', '2.7.2') {"); @@ -266,6 +272,7 @@ void libraryNamedSpringBootHasNoVersionProperty() throws IOException { try (PrintWriter out = new PrintWriter(new FileWriter(this.buildFile))) { out.println("plugins {"); out.println(" id 'org.springframework.boot.bom'"); + out.println(" id 'org.springframework.boot.deployed'"); out.println("}"); out.println("bom {"); out.println(" library('Spring Boot', '1.2.3') {"); diff --git a/spring-boot-tests/spring-boot-integration-tests/spring-boot-launch-script-tests/build.gradle b/spring-boot-tests/spring-boot-integration-tests/spring-boot-launch-script-tests/build.gradle index eafdbbf2f9a5..ef5028e417a7 100644 --- a/spring-boot-tests/spring-boot-integration-tests/spring-boot-launch-script-tests/build.gradle +++ b/spring-boot-tests/spring-boot-integration-tests/spring-boot-launch-script-tests/build.gradle @@ -15,7 +15,6 @@ configurations { dependencies { app project(path: ":spring-boot-project:spring-boot-dependencies", configuration: "mavenRepository") - app project(path: ":spring-boot-project:spring-boot-parent", configuration: "mavenRepository") app project(path: ":spring-boot-project:spring-boot-tools:spring-boot-gradle-plugin", configuration: "mavenRepository") dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) From 2efad20f7be85de96ab2bf405eea166745e208aa Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 27 May 2025 10:56:38 +0100 Subject: [PATCH 021/711] Broaden Gradle compatibility testing Closes gh-45692 --- .../spring-boot-tools/spring-boot-gradle-plugin/build.gradle | 4 ---- .../boot/testsupport/gradle/testkit/GradleVersions.java | 5 ++++- 2 files changed, 4 insertions(+), 5 deletions(-) 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 93a89a921925..6164742037c6 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 @@ -154,7 +154,3 @@ plugins.withType(EclipsePlugin) { } } } - -toolchain { - maximumCompatibleJavaVersion = JavaLanguageVersion.of(23) -} diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java index 38f9844ec757..6d894460e736 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java @@ -33,9 +33,12 @@ private GradleVersions() { } public static List allCompatible() { - if (isJavaVersion(JavaVersion.VERSION_23)) { + if (isJavaVersion(JavaVersion.VERSION_24)) { return Arrays.asList(GradleVersion.current().getVersion()); } + if (isJavaVersion(JavaVersion.VERSION_23)) { + return Arrays.asList("8.10", GradleVersion.current().getVersion()); + } if (isJavaVersion(JavaVersion.VERSION_22)) { return Arrays.asList("8.8", GradleVersion.current().getVersion()); } From f0757440e9788803aa35103ba0d5d520d552c5ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 27 May 2025 12:43:37 +0200 Subject: [PATCH 022/711] Stop building against non-LTS Java versions that are EOL Closes gh-45695 --- .github/workflows/ci.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e53dbf06e7f7..2c08fa19380d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -21,8 +21,6 @@ jobs: toolchain: false - version: 21 toolchain: true - - version: 22 - toolchain: true - version: 23 toolchain: true exclude: From 25b72d66fce1e6e7768f5c23fae91c83e0ab156f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 15 Apr 2025 10:58:38 +0100 Subject: [PATCH 023/711] Test Gradle plugin against 9.0.0-milestone-9 --- .../plugin/WarPluginActionIntegrationTests.java | 14 ++++++++++---- .../AbstractBootArchiveIntegrationTests.java | 2 ++ .../tasks/bundling/BootJarIntegrationTests.java | 2 ++ .../testsupport/gradle/testkit/GradleBuild.java | 4 ++++ .../testsupport/gradle/testkit/GradleVersions.java | 12 ++++++------ 5 files changed, 24 insertions(+), 10 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/WarPluginActionIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/WarPluginActionIntegrationTests.java index 09e23e284aa1..38d4d10bca59 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/WarPluginActionIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/plugin/WarPluginActionIntegrationTests.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. @@ -20,7 +20,9 @@ import java.io.File; import java.io.IOException; import java.io.StringReader; +import java.util.ArrayList; import java.util.HashSet; +import java.util.List; import java.util.Set; import org.gradle.testkit.runner.BuildResult; @@ -61,9 +63,13 @@ void assembleRunsBootWarAndWar() { assertThat(result.task(":bootWar").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); assertThat(result.task(":war").getOutcome()).isEqualTo(TaskOutcome.SUCCESS); File buildLibs = new File(this.gradleBuild.getProjectDir(), "build/libs"); - assertThat(buildLibs.listFiles()).containsExactlyInAnyOrder( - new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".war"), - new File(buildLibs, this.gradleBuild.getProjectDir().getName() + "-plain.war")); + List expected = new ArrayList<>(); + expected.add(new File(buildLibs, this.gradleBuild.getProjectDir().getName() + ".war")); + expected.add(new File(buildLibs, this.gradleBuild.getProjectDir().getName() + "-plain.war")); + if (this.gradleBuild.gradleVersionIsAtLeast("9.0-milestone-2")) { + expected.add(new File(buildLibs, this.gradleBuild.getProjectDir().getName() + "-plain.jar")); + } + assertThat(buildLibs.listFiles()).containsExactlyInAnyOrderElementsOf(expected); } @TestTemplate diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java index 4fb7f0ebf4e5..202172abf49a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java @@ -50,6 +50,7 @@ import org.apache.commons.compress.archivers.zip.ZipFile; import org.gradle.testkit.runner.BuildResult; import org.gradle.testkit.runner.TaskOutcome; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.TestTemplate; import org.springframework.boot.loader.tools.FileUtils; @@ -597,6 +598,7 @@ void defaultDirAndFileModesAreUsed() throws IOException { @TestTemplate void dirModeAndFileModeAreApplied() throws IOException { + Assumptions.assumeTrue(this.gradleBuild.gradleVersionIsLessThan("9.0-milestone-1")); BuildResult result = this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.8-rc-1") .expectDeprecationMessages("The CopyProcessingSpec.setDirMode(Integer) method has been deprecated", "The CopyProcessingSpec.setFileMode(Integer) method has been deprecated", diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootJarIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootJarIntegrationTests.java index cf14bba28c32..f03f733b8f4a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootJarIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/BootJarIntegrationTests.java @@ -25,6 +25,7 @@ import org.gradle.testkit.runner.BuildResult; import org.gradle.testkit.runner.TaskOutcome; +import org.junit.jupiter.api.Assumptions; import org.junit.jupiter.api.TestTemplate; import org.springframework.boot.gradle.junit.GradleCompatibility; @@ -56,6 +57,7 @@ void signed() throws Exception { @TestTemplate void whenAResolvableCopyOfAnUnresolvableConfigurationIsResolvedThenResolutionSucceeds() { + Assumptions.assumeTrue(this.gradleBuild.gradleVersionIsLessThan("9.0-milestone-1")); this.gradleBuild.expectDeprecationWarningsWithAtLeastVersion("8.0").build("build"); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java index 5fb7f6ccf86c..901ee096e053 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleBuild.java @@ -134,6 +134,10 @@ public boolean gradleVersionIsAtLeast(String version) { return GradleVersion.version(this.gradleVersion).compareTo(GradleVersion.version(version)) >= 0; } + public boolean gradleVersionIsLessThan(String version) { + return GradleVersion.version(this.gradleVersion).compareTo(GradleVersion.version(version)) < 0; + } + public BuildResult build(String... arguments) { try { BuildResult result = prepareRunner(arguments).build(); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java index 6d894460e736..c84636441407 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-test-support/src/main/java/org/springframework/boot/testsupport/gradle/testkit/GradleVersions.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. @@ -34,18 +34,18 @@ private GradleVersions() { public static List allCompatible() { if (isJavaVersion(JavaVersion.VERSION_24)) { - return Arrays.asList(GradleVersion.current().getVersion()); + return Arrays.asList(GradleVersion.current().getVersion(), "9.0.0-milestone-9"); } if (isJavaVersion(JavaVersion.VERSION_23)) { - return Arrays.asList("8.10", GradleVersion.current().getVersion()); + return Arrays.asList(GradleVersion.current().getVersion(), "9.0.0-milestone-9"); } if (isJavaVersion(JavaVersion.VERSION_22)) { - return Arrays.asList("8.8", GradleVersion.current().getVersion()); + return Arrays.asList("8.8", GradleVersion.current().getVersion(), "9.0.0-milestone-9"); } if (isJavaVersion(JavaVersion.VERSION_21)) { - return Arrays.asList("8.5", GradleVersion.current().getVersion()); + return Arrays.asList("8.5", GradleVersion.current().getVersion(), "9.0.0-milestone-9"); } - return Arrays.asList("7.6.4", "8.4", GradleVersion.current().getVersion()); + return Arrays.asList("7.6.4", "8.4", GradleVersion.current().getVersion(), "9.0.0-milestone-9"); } public static String minimumCompatible() { From 5b2cb79bb167b3d4603d9713f782a3423c3a1084 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 27 May 2025 13:56:00 +0100 Subject: [PATCH 024/711] Configure more version alignment for Spring Data dependencies Closes gh-45698 --- .../boot/build/bom/BomExtension.java | 53 +++++++- .../boot/build/bom/Library.java | 115 +++++++++++++++++- .../spring-boot-dependencies/build.gradle | 20 +++ 3 files changed, 180 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java index 9c4eedda6947..d7754fdcd197 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java @@ -38,6 +38,9 @@ import org.gradle.api.model.ObjectFactory; import org.gradle.api.plugins.JavaPlatformPlugin; +import org.springframework.boot.build.bom.BomExtension.LibraryHandler.AlignWithHandler.PropertyHandler; +import org.springframework.boot.build.bom.BomExtension.LibraryHandler.AlignWithHandler.VersionHandler; +import org.springframework.boot.build.bom.Library.DependencyVersionAlignment; import org.springframework.boot.build.bom.Library.Exclusion; import org.springframework.boot.build.bom.Library.Group; import org.springframework.boot.build.bom.Library.ImportedBom; @@ -45,6 +48,7 @@ import org.springframework.boot.build.bom.Library.Link; import org.springframework.boot.build.bom.Library.Module; import org.springframework.boot.build.bom.Library.PermittedDependency; +import org.springframework.boot.build.bom.Library.PomPropertyVersionAlignment; import org.springframework.boot.build.bom.Library.ProhibitedVersion; import org.springframework.boot.build.bom.Library.VersionAlignment; import org.springframework.boot.build.bom.bomr.version.DependencyVersion; @@ -106,16 +110,26 @@ public void library(String name, String version, Action action) (version != null) ? version : ""); action.execute(libraryHandler); LibraryVersion libraryVersion = new LibraryVersion(DependencyVersion.parse(libraryHandler.version)); - VersionAlignment versionAlignment = (libraryHandler.alignWith.version != null) - ? new VersionAlignment(libraryHandler.alignWith.version.from, - libraryHandler.alignWith.version.managedBy, this.project, this.libraries, libraryHandler.groups) - : null; addLibrary(new Library(name, libraryHandler.calendarName, libraryVersion, libraryHandler.groups, - libraryHandler.prohibitedVersions, libraryHandler.considerSnapshots, versionAlignment, + libraryHandler.prohibitedVersions, libraryHandler.considerSnapshots, versionAlignment(libraryHandler), libraryHandler.alignWith.dependencyManagementDeclaredIn, libraryHandler.linkRootName, libraryHandler.links)); } + private VersionAlignment versionAlignment(LibraryHandler libraryHandler) { + VersionHandler version = libraryHandler.alignWith.version; + if (version != null) { + return new DependencyVersionAlignment(version.from, version.managedBy, this.project, this.libraries, + libraryHandler.groups); + } + PropertyHandler property = libraryHandler.alignWith.property; + if (property != null) { + return new PomPropertyVersionAlignment(property.name, property.of, property.managedBy, this.project, + this.libraries); + } + return null; + } + private String createDependencyNotation(String groupId, String artifactId, DependencyVersion version) { return groupId + ":" + artifactId + ":" + version; } @@ -383,6 +397,8 @@ public static class AlignWithHandler { private VersionHandler version; + private PropertyHandler property; + private String dependencyManagementDeclaredIn; public void version(Action action) { @@ -390,6 +406,11 @@ public void version(Action action) { action.execute(this.version); } + public void property(Action action) { + this.property = new PropertyHandler(); + action.execute(this.property); + } + public void dependencyManagementDeclaredIn(String bomCoordinates) { this.dependencyManagementDeclaredIn = bomCoordinates; } @@ -410,6 +431,28 @@ public void managedBy(String managedBy) { } + public static class PropertyHandler { + + private String name; + + private String of; + + private String managedBy; + + public void name(String name) { + this.name = name; + } + + public void of(String dependency) { + this.of = dependency; + } + + public void managedBy(String managedBy) { + this.managedBy = managedBy; + } + + } + } } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java index cde765e1ed27..723537732f4f 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/Library.java @@ -16,6 +16,7 @@ package org.springframework.boot.build.bom; +import java.io.File; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; @@ -31,6 +32,11 @@ import java.util.regex.Pattern; import java.util.stream.Stream; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.xpath.XPath; +import javax.xml.xpath.XPathFactory; + import org.apache.maven.artifact.versioning.DefaultArtifactVersion; import org.apache.maven.artifact.versioning.VersionRange; import org.gradle.api.Project; @@ -38,6 +44,7 @@ import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.result.DependencyResult; import org.gradle.api.artifacts.result.ResolutionResult; +import org.w3c.dom.Document; import org.springframework.boot.build.bom.bomr.version.DependencyVersion; @@ -406,10 +413,16 @@ public String getArtifactId() { } + public interface VersionAlignment { + + Set resolve(); + + } + /** - * Version alignment for a library. + * Version alignment for a library based on a dependency of another module. */ - public static class VersionAlignment { + public static class DependencyVersionAlignment implements VersionAlignment { private final String from; @@ -423,7 +436,8 @@ public static class VersionAlignment { private Set alignedVersions; - VersionAlignment(String from, String managedBy, Project project, List libraries, List groups) { + DependencyVersionAlignment(String from, String managedBy, Project project, List libraries, + List groups) { this.from = from; this.managedBy = managedBy; this.project = project; @@ -431,6 +445,7 @@ public static class VersionAlignment { this.groups = groups; } + @Override public Set resolve() { if (this.alignedVersions != null) { return this.alignedVersions; @@ -539,6 +554,100 @@ public String toString() { } + /** + * Version alignment for a library based on a property in the pom of another module. + */ + public static class PomPropertyVersionAlignment implements VersionAlignment { + + private final String name; + + private final String from; + + private final String managedBy; + + private final Project project; + + private final List libraries; + + private Set alignedVersions; + + PomPropertyVersionAlignment(String name, String from, String managedBy, Project project, + List libraries) { + this.name = name; + this.from = from; + this.managedBy = managedBy; + this.project = project; + this.libraries = libraries; + } + + @Override + public Set resolve() { + if (this.alignedVersions != null) { + return this.alignedVersions; + } + Configuration alignmentConfiguration = this.project.getConfigurations() + .detachedConfiguration(getAligningDependencies().toArray(new Dependency[0])); + Set files = alignmentConfiguration.resolve(); + if (files.size() != 1) { + throw new IllegalStateException( + "Expected a single file when resolving the pom of " + this.from + " but found " + files.size()); + } + File pomFile = files.iterator().next(); + return Set.of(propertyFrom(pomFile)); + } + + private List getAligningDependencies() { + Library managingLibrary = findManagingLibrary(); + List boms = getBomDependencies(managingLibrary); + List dependencies = new ArrayList<>(); + dependencies.addAll(boms); + dependencies.add(this.project.getDependencies().create(this.from + "@pom")); + return dependencies; + } + + private Library findManagingLibrary() { + if (this.managedBy == null) { + return null; + } + return this.libraries.stream() + .filter((candidate) -> this.managedBy.equals(candidate.getName())) + .findFirst() + .orElseThrow(() -> new IllegalStateException("Managing library '" + this.managedBy + "' not found.")); + } + + private List getBomDependencies(Library manager) { + return manager.getGroups() + .stream() + .flatMap((group) -> group.getBoms() + .stream() + .map((bom) -> this.project.getDependencies() + .platform(group.getId() + ":" + bom.name() + ":" + manager.getVersion().getVersion()))) + .toList(); + } + + private String propertyFrom(File pomFile) { + try { + DocumentBuilder documentBuilder = DocumentBuilderFactory.newInstance().newDocumentBuilder(); + Document document = documentBuilder.parse(pomFile); + XPath xpath = XPathFactory.newInstance().newXPath(); + return xpath.evaluate("/project/properties/" + this.name + "/text()", document); + } + catch (Exception ex) { + throw new RuntimeException(ex); + } + } + + @Override + public String toString() { + String result = "version from properties of " + this.from; + if (this.managedBy != null) { + result += " that is managed by " + this.managedBy; + } + return result; + } + + } + public record Link(String rootName, Function factory, List packages) { private static final Pattern PACKAGE_EXPAND = Pattern.compile("^(.*)\\[(.*)\\]$"); diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 183871a5bb4c..ae1121153f25 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -939,6 +939,13 @@ bom { } } library("Jedis", "5.0.2") { + alignWith { + property { + name "jedis" + of "org.springframework.data:spring-data-redis" + managedBy "Spring Data Bom" + } + } group("redis.clients") { modules = [ "jedis" @@ -1150,6 +1157,13 @@ bom { } } library("Lettuce", "6.3.2.RELEASE") { + alignWith { + property { + name "lettuce" + of "org.springframework.data:spring-data-redis" + managedBy "Spring Data Bom" + } + } group("io.lettuce") { modules = [ "lettuce-core" @@ -1452,6 +1466,12 @@ bom { } } library("MongoDB", "5.0.1") { + alignWith { + version { + from "org.springframework.data:spring-data-mongodb" + managedBy "Spring Data Bom" + } + } group("org.mongodb") { modules = [ "bson", From 2bdbc1f8d2375ac206eea320687acac89badbf24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Wed, 28 May 2025 14:44:22 +0200 Subject: [PATCH 025/711] Use RestClient in Spring MVC integration tests Closes gh-45711 --- ...dContextConfigurationIntegrationTests.java | 44 ++++++++----------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java index 8d014fbf38fd..22b1bb027d32 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfigurationIntegrationTests.java @@ -22,14 +22,12 @@ import java.util.Collections; import java.util.Map; import java.util.function.Consumer; -import java.util.function.Function; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import org.assertj.core.api.InstanceOfAssertFactories; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; -import reactor.core.publisher.Mono; import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration; @@ -56,8 +54,8 @@ import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.reactive.function.client.ClientResponse; -import org.springframework.web.reactive.function.client.WebClient; +import org.springframework.web.client.RestClient; +import org.springframework.web.client.RestClient.RequestHeadersSpec.ExchangeFunction; import static org.assertj.core.api.Assertions.assertThat; @@ -86,12 +84,11 @@ class WebMvcEndpointChildContextConfigurationIntegrationTests { @Test // gh-17938 void errorEndpointIsUsedWithEndpoint() { - this.runner.run(withWebTestClient((client) -> { + this.runner.run(withRestClient((client) -> { Map body = client.get() .uri("actuator/fail") .accept(MediaType.APPLICATION_JSON) - .exchangeToMono(toResponseBody()) - .block(); + .exchange(toResponseBody()); assertThat(body).hasEntrySatisfying("exception", (value) -> assertThat(value).asString().contains("IllegalStateException")); assertThat(body).hasEntrySatisfying("message", @@ -102,12 +99,11 @@ void errorEndpointIsUsedWithEndpoint() { @Test void errorPageAndErrorControllerIncludeDetails() { this.runner.withPropertyValues("server.error.include-stacktrace=always", "server.error.include-message=always") - .run(withWebTestClient((client) -> { + .run(withRestClient((client) -> { Map body = client.get() .uri("actuator/fail") .accept(MediaType.APPLICATION_JSON) - .exchangeToMono(toResponseBody()) - .block(); + .exchange(toResponseBody()); assertThat(body).hasEntrySatisfying("message", (value) -> assertThat(value).asString().contains("Epic Fail")); assertThat(body).hasEntrySatisfying("trace", @@ -117,12 +113,11 @@ void errorPageAndErrorControllerIncludeDetails() { @Test void errorEndpointIsUsedWithRestControllerEndpoint() { - this.runner.run(withWebTestClient((client) -> { + this.runner.run(withRestClient((client) -> { Map body = client.get() .uri("actuator/failController") .accept(MediaType.APPLICATION_JSON) - .exchangeToMono(toResponseBody()) - .block(); + .exchange(toResponseBody()); assertThat(body).hasEntrySatisfying("exception", (value) -> assertThat(value).asString().contains("IllegalStateException")); assertThat(body).hasEntrySatisfying("message", @@ -132,13 +127,12 @@ void errorEndpointIsUsedWithRestControllerEndpoint() { @Test void errorEndpointIsUsedWithRestControllerEndpointOnBindingError() { - this.runner.run(withWebTestClient((client) -> { + this.runner.run(withRestClient((client) -> { Map body = client.post() .uri("actuator/failController") - .bodyValue(Collections.singletonMap("content", "")) + .body(Collections.singletonMap("content", "")) .accept(MediaType.APPLICATION_JSON) - .exchangeToMono(toResponseBody()) - .block(); + .exchange(toResponseBody()); assertThat(body).hasEntrySatisfying("exception", (value) -> assertThat(value).asString().contains("MethodArgumentNotValidException")); assertThat(body).hasEntrySatisfying("message", @@ -150,12 +144,12 @@ void errorEndpointIsUsedWithRestControllerEndpointOnBindingError() { @Test void whenManagementServerBasePathIsConfiguredThenEndpointsAreBeneathThatPath() { - this.runner.withPropertyValues("management.server.base-path:/manage").run(withWebTestClient((client) -> { + this.runner.withPropertyValues("management.server.base-path:/manage").run(withRestClient((client) -> { String body = client.get() .uri("manage/actuator/success") .accept(MediaType.APPLICATION_JSON) - .exchangeToMono((response) -> response.bodyToMono(String.class)) - .block(); + .retrieve() + .body(String.class); assertThat(body).isEqualTo("Success"); })); } @@ -182,16 +176,16 @@ private void addConfigTreePropertySource(ConfigurableApplicationContext applicat } } - private ContextConsumer withWebTestClient(Consumer webClient) { + private ContextConsumer withRestClient(Consumer restClient) { return (context) -> { String port = context.getEnvironment().getProperty("local.management.port"); - WebClient client = WebClient.create("http://localhost:" + port); - webClient.accept(client); + RestClient client = RestClient.create("http://localhost:" + port); + restClient.accept(client); }; } - private Function>> toResponseBody() { - return ((clientResponse) -> clientResponse.bodyToMono(new ParameterizedTypeReference>() { + private ExchangeFunction> toResponseBody() { + return ((request, response) -> response.bodyTo(new ParameterizedTypeReference>() { })); } From 01e9baa2257098385ae8fdc0c6062fcb1381a17d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Wed, 28 May 2025 15:02:39 +0200 Subject: [PATCH 026/711] Fix test dependencies of WebMvcTestOAuth2Tests This commit fixes the dependencies of spring-boot-test-autoconfigure so that it does not depend on a starter. See gh-45654 --- spring-boot-project/spring-boot-test-autoconfigure/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index da0d388f839f..513a8a12f657 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -110,9 +110,9 @@ dependencies { testImplementation("org.mockito:mockito-junit-jupiter") testImplementation("org.skyscreamer:jsonassert") testImplementation("org.springframework:spring-core-test") - testImplementation("org.springframework.boot:spring-boot-starter-oauth2-client") testImplementation("org.springframework.hateoas:spring-hateoas") testImplementation("org.springframework.plugin:spring-plugin-core") + testImplementation("org.springframework.security:spring-security-oauth2-client") testImplementation("org.thymeleaf:thymeleaf") } From 2fd29481da7faacb1e0f1c7b3c26bfd68fe5b420 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 30 May 2025 15:43:14 +0200 Subject: [PATCH 027/711] Polish --- .../actuate/web/exchanges/servlet/HttpExchangesFilter.java | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java index 8ac9cc951f44..d7eee923222a 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.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. @@ -31,7 +31,6 @@ import org.springframework.boot.actuate.web.exchanges.HttpExchange; import org.springframework.boot.actuate.web.exchanges.HttpExchangeRepository; import org.springframework.boot.actuate.web.exchanges.Include; -import org.springframework.boot.actuate.web.exchanges.reactive.HttpExchangesWebFilter; import org.springframework.core.Ordered; import org.springframework.http.HttpStatus; import org.springframework.web.filter.OncePerRequestFilter; @@ -57,7 +56,7 @@ public class HttpExchangesFilter extends OncePerRequestFilter implements Ordered private final Set includes; /** - * Create a new {@link HttpExchangesWebFilter} instance. + * Create a new instance. * @param repository the repository used to record events * @param includes the include options */ From 3595c7aa0ade702db08d0e4af5714efc50701f5b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 2 Jun 2025 16:11:41 +0200 Subject: [PATCH 028/711] Run ManagementErrorPageCustomizer after core factory customizer This commit orders ManagementErrorPageCustomizer so that is runs after ManagementWebServerFactoryCustomizer. Previously, they had the same order and could run either way. Closes gh-45728 --- .../web/servlet/WebMvcEndpointChildContextConfiguration.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfiguration.java index e55b983b2c7a..45ec3ac3d419 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/WebMvcEndpointChildContextConfiguration.java @@ -1,5 +1,5 @@ /* - * Copyright 2012-2021 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. @@ -128,7 +128,7 @@ public void customize(ConfigurableServletWebServerFactory factory) { @Override public int getOrder() { - return 0; + return 10; // Run after ManagementWebServerFactoryCustomizer } } From 9ccd1f07268a913fbf620758802edde72f75f40c Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Wed, 21 May 2025 09:35:01 +0800 Subject: [PATCH 029/711] Prevent that only org.springframework.core.ResolvableType is used See gh-45635 Signed-off-by: Yanming Zhou --- src/checkstyle/checkstyle.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml index 6ec9f685df0a..ffed3f357e49 100644 --- a/src/checkstyle/checkstyle.xml +++ b/src/checkstyle/checkstyle.xml @@ -16,7 +16,7 @@ + value="^com\.hazelcast\.util\.Base64, ^org\.junit\.rules\.ExpectedException, ^org\.mockito\.InjectMocks, ^org\.slf4j\.LoggerFactory, ^org.springframework.context.annotation.ScannedGenericBeanDefinition, ^reactor\.core\.support\.Assert, ^(?!org\.springframework\.util\.).*ReflectionUtils, ^(?!org\.springframework\.core\.).*ResolvableType"/> From 43e040e5b4020fd58daa968443529936b5e17ab9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Mon, 2 Jun 2025 16:22:15 +0200 Subject: [PATCH 030/711] Fix order of illegal classes See gh-45635 --- src/checkstyle/checkstyle.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml index ffed3f357e49..60c8a4d6e5dc 100644 --- a/src/checkstyle/checkstyle.xml +++ b/src/checkstyle/checkstyle.xml @@ -16,7 +16,7 @@ + value="^com\.hazelcast\.util\.Base64, ^org\.junit\.rules\.ExpectedException, ^org\.mockito\.InjectMocks, ^org\.slf4j\.LoggerFactory, ^org.springframework.context.annotation.ScannedGenericBeanDefinition, , ^(?!org\.springframework\.core\.).*ResolvableType, ^(?!org\.springframework\.util\.).*ReflectionUtils, ^reactor\.core\.support\.Assert"/> From 8fd71f9142e227d92eb73b31f8e137a8bc6bb9c1 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Fri, 23 May 2025 11:06:27 +0800 Subject: [PATCH 031/711] Remove unused SslBundles from RedisConnectionConfiguration See gh-45644 Signed-off-by: Yanming Zhou --- .../data/redis/JedisConnectionConfiguration.java | 6 ++---- .../data/redis/LettuceConnectionConfiguration.java | 5 ++--- .../data/redis/RedisConnectionConfiguration.java | 11 +---------- 3 files changed, 5 insertions(+), 17 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/JedisConnectionConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/JedisConnectionConfiguration.java index 353b2ef9c9db..f2d42ed92b79 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/JedisConnectionConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/JedisConnectionConfiguration.java @@ -30,7 +30,6 @@ import org.springframework.boot.autoconfigure.thread.Threading; import org.springframework.boot.context.properties.PropertyMapper; import org.springframework.boot.ssl.SslBundle; -import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.ssl.SslOptions; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -65,10 +64,9 @@ class JedisConnectionConfiguration extends RedisConnectionConfiguration { JedisConnectionConfiguration(RedisProperties properties, ObjectProvider standaloneConfigurationProvider, ObjectProvider sentinelConfiguration, - ObjectProvider clusterConfiguration, RedisConnectionDetails connectionDetails, - ObjectProvider sslBundles) { + ObjectProvider clusterConfiguration, RedisConnectionDetails connectionDetails) { super(properties, connectionDetails, standaloneConfigurationProvider, sentinelConfiguration, - clusterConfiguration, sslBundles); + clusterConfiguration); } @Bean diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.java index 734c747e51b5..98859a86108c 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/LettuceConnectionConfiguration.java @@ -40,7 +40,6 @@ import org.springframework.boot.autoconfigure.data.redis.RedisProperties.Pool; import org.springframework.boot.autoconfigure.thread.Threading; import org.springframework.boot.ssl.SslBundle; -import org.springframework.boot.ssl.SslBundles; import org.springframework.boot.ssl.SslOptions; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -73,9 +72,9 @@ class LettuceConnectionConfiguration extends RedisConnectionConfiguration { ObjectProvider standaloneConfigurationProvider, ObjectProvider sentinelConfigurationProvider, ObjectProvider clusterConfigurationProvider, - RedisConnectionDetails connectionDetails, ObjectProvider sslBundles) { + RedisConnectionDetails connectionDetails) { super(properties, connectionDetails, standaloneConfigurationProvider, sentinelConfigurationProvider, - clusterConfigurationProvider, sslBundles); + clusterConfigurationProvider); } @Bean(destroyMethod = "shutdown") diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java index d3a703608eea..291ac1308aad 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/data/redis/RedisConnectionConfiguration.java @@ -25,7 +25,6 @@ import org.springframework.boot.autoconfigure.data.redis.RedisConnectionDetails.Sentinel; import org.springframework.boot.autoconfigure.data.redis.RedisProperties.Pool; import org.springframework.boot.ssl.SslBundle; -import org.springframework.boot.ssl.SslBundles; import org.springframework.data.redis.connection.RedisClusterConfiguration; import org.springframework.data.redis.connection.RedisNode; import org.springframework.data.redis.connection.RedisPassword; @@ -61,21 +60,17 @@ abstract class RedisConnectionConfiguration { private final RedisConnectionDetails connectionDetails; - private final SslBundles sslBundles; - protected final Mode mode; protected RedisConnectionConfiguration(RedisProperties properties, RedisConnectionDetails connectionDetails, ObjectProvider standaloneConfigurationProvider, ObjectProvider sentinelConfigurationProvider, - ObjectProvider clusterConfigurationProvider, - ObjectProvider sslBundles) { + ObjectProvider clusterConfigurationProvider) { this.properties = properties; this.standaloneConfiguration = standaloneConfigurationProvider.getIfAvailable(); this.sentinelConfiguration = sentinelConfigurationProvider.getIfAvailable(); this.clusterConfiguration = clusterConfigurationProvider.getIfAvailable(); this.connectionDetails = connectionDetails; - this.sslBundles = sslBundles.getIfAvailable(); this.mode = determineMode(); } @@ -153,10 +148,6 @@ protected final RedisProperties getProperties() { return this.properties; } - protected final SslBundles getSslBundles() { - return this.sslBundles; - } - protected SslBundle getSslBundle() { return switch (this.mode) { case STANDALONE -> (this.connectionDetails.getStandalone() != null) From c313322aafa0065ff7b2ee6446b2e7c0eb6e2dc4 Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Thu, 29 May 2025 10:38:31 +0700 Subject: [PATCH 032/711] Fix Gradle Shadow Plugin link in reference documentation See gh-45720 Signed-off-by: Tran Ngoc Nhan --- .../specification/pages/executable-jar/alternatives.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/specification/pages/executable-jar/alternatives.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/specification/pages/executable-jar/alternatives.adoc index e94a71dc77b6..8eb105ed7ce6 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/specification/pages/executable-jar/alternatives.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/specification/pages/executable-jar/alternatives.adoc @@ -6,5 +6,5 @@ If the preceding restrictions mean that you cannot use Spring Boot Loader, consi * https://maven.apache.org/plugins/maven-shade-plugin/[Maven Shade Plugin] * http://www.jdotsoft.com/JarClassLoader.php[JarClassLoader] * https://sourceforge.net/projects/one-jar/[OneJar] -* https://imperceptiblethoughts.com/shadow/[Gradle Shadow Plugin] +* https://gradleup.com/shadow/[Gradle Shadow Plugin] From 17b94156082599507de57dcb3b9dcb1e0bfe63b3 Mon Sep 17 00:00:00 2001 From: Peksa Date: Mon, 2 Jun 2025 18:50:28 +0200 Subject: [PATCH 033/711] Fix typo in for deprecation replacement of spring.codec.* properties See gh-45743 Signed-off-by: Peksa --- .../boot/autoconfigure/codec/CodecProperties.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/codec/CodecProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/codec/CodecProperties.java index 9f8403908e86..633c4cb75d2c 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/codec/CodecProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/codec/CodecProperties.java @@ -45,7 +45,7 @@ public class CodecProperties { */ private DataSize maxInMemorySize; - @DeprecatedConfigurationProperty(since = "3.5.0", replacement = "spring.http.codec.log-request-details") + @DeprecatedConfigurationProperty(since = "3.5.0", replacement = "spring.http.codecs.log-request-details") public boolean isLogRequestDetails() { return this.logRequestDetails; } @@ -54,7 +54,7 @@ public void setLogRequestDetails(boolean logRequestDetails) { this.logRequestDetails = logRequestDetails; } - @DeprecatedConfigurationProperty(since = "3.5.0", replacement = "spring.http.codec.max-in-memory-size") + @DeprecatedConfigurationProperty(since = "3.5.0", replacement = "spring.http.codecs.max-in-memory-size") public DataSize getMaxInMemorySize() { return this.maxInMemorySize; } From 644aeabf7b3e53a299d74e55d1ece1f3c27acaa6 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 2 Jun 2025 12:12:58 -0700 Subject: [PATCH 034/711] Polish --- .../ObservationRegistryConfigurerIntegrationTests.java | 1 - .../boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/ObservationRegistryConfigurerIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/ObservationRegistryConfigurerIntegrationTests.java index 8ffcd64f4b2e..b1925da35d5f 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/ObservationRegistryConfigurerIntegrationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/observation/ObservationRegistryConfigurerIntegrationTests.java @@ -47,7 +47,6 @@ void customizersAreCalledInOrder() { CalledCustomizers calledCustomizers = context.getBean(CalledCustomizers.class); Customizer1 customizer1 = context.getBean(Customizer1.class); Customizer2 customizer2 = context.getBean(Customizer2.class); - assertThat(calledCustomizers.getCustomizers()).containsExactly(customizer1, customizer2); }); } diff --git a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java index d7eee923222a..030659739e09 100644 --- a/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java +++ b/spring-boot-project/spring-boot-actuator/src/main/java/org/springframework/boot/actuate/web/exchanges/servlet/HttpExchangesFilter.java @@ -56,7 +56,7 @@ public class HttpExchangesFilter extends OncePerRequestFilter implements Ordered private final Set includes; /** - * Create a new instance. + * Create a new {@link HttpExchangesFilter} instance. * @param repository the repository used to record events * @param includes the include options */ From 5464812f80081cf85a6734608f13406cbddcafcc Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 2 Jun 2025 17:10:33 +0100 Subject: [PATCH 035/711] Improve checking of auto-configuration --- .../autoconfigure/AutoConfigurationClass.java | 135 +++++++++++ .../AutoConfigurationImportsTask.java | 66 ++++++ .../AutoConfigurationPlugin.java | 122 +++------- .../CheckAutoConfigurationClasses.java | 212 ++++++++++++++++++ .../CheckAutoConfigurationImports.java | 126 +++++++++++ 5 files changed, 575 insertions(+), 86 deletions(-) create mode 100644 buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationClass.java create mode 100644 buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationImportsTask.java create mode 100644 buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationClasses.java create mode 100644 buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationClass.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationClass.java new file mode 100644 index 000000000000..2d3ffff8e8f0 --- /dev/null +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationClass.java @@ -0,0 +1,135 @@ +/* + * Copyright 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.autoconfigure; + +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; + +import org.springframework.asm.AnnotationVisitor; +import org.springframework.asm.ClassReader; +import org.springframework.asm.ClassVisitor; +import org.springframework.asm.SpringAsmInfo; +import org.springframework.asm.Type; + +/** + * An {@code @AutoConfiguration} class. + * + * @param name name of the auto-configuration class + * @param before values of the {@code before} attribute + * @param beforeName values of the {@code beforeName} attribute + * @param after values of the {@code after} attribute + * @param afterName values of the {@code afterName} attribute + * @author Andy Wilkinson + */ +public record AutoConfigurationClass(String name, List before, List beforeName, List after, + List afterName) { + + private AutoConfigurationClass(String name, Map> attributes) { + this(name, attributes.getOrDefault("before", Collections.emptyList()), + attributes.getOrDefault("beforeName", Collections.emptyList()), + attributes.getOrDefault("after", Collections.emptyList()), + attributes.getOrDefault("afterName", Collections.emptyList())); + } + + static AutoConfigurationClass of(File classFile) { + try (FileInputStream input = new FileInputStream(classFile)) { + ClassReader classReader = new ClassReader(input); + AutoConfigurationClassVisitor visitor = new AutoConfigurationClassVisitor(); + classReader.accept(visitor, ClassReader.SKIP_DEBUG | ClassReader.SKIP_CODE | ClassReader.SKIP_FRAMES); + return visitor.autoConfigurationClass; + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } + + private static final class AutoConfigurationClassVisitor extends ClassVisitor { + + private AutoConfigurationClass autoConfigurationClass; + + private String name; + + private AutoConfigurationClassVisitor() { + super(SpringAsmInfo.ASM_VERSION); + } + + @Override + public void visit(int version, int access, String name, String signature, String superName, + String[] interfaces) { + this.name = Type.getObjectType(name).getClassName(); + } + + @Override + public AnnotationVisitor visitAnnotation(String descriptor, boolean visible) { + String annotationClassName = Type.getType(descriptor).getClassName(); + if ("org.springframework.boot.autoconfigure.AutoConfiguration".equals(annotationClassName)) { + return new AutoConfigurationAnnotationVisitor(); + } + return null; + } + + private final class AutoConfigurationAnnotationVisitor extends AnnotationVisitor { + + private Map> attributes = new HashMap<>(); + + private static final Set INTERESTING_ATTRIBUTES = Set.of("before", "beforeName", "after", + "afterName"); + + private AutoConfigurationAnnotationVisitor() { + super(SpringAsmInfo.ASM_VERSION); + } + + @Override + public void visitEnd() { + AutoConfigurationClassVisitor.this.autoConfigurationClass = new AutoConfigurationClass( + AutoConfigurationClassVisitor.this.name, this.attributes); + } + + @Override + public AnnotationVisitor visitArray(String attributeName) { + if (INTERESTING_ATTRIBUTES.contains(attributeName)) { + return new AnnotationVisitor(SpringAsmInfo.ASM_VERSION) { + + @Override + public void visit(String name, Object value) { + if (value instanceof Type type) { + value = type.getClassName(); + } + AutoConfigurationAnnotationVisitor.this.attributes + .computeIfAbsent(attributeName, (n) -> new ArrayList<>()) + .add(Objects.toString(value)); + } + + }; + } + return null; + } + + } + + } + +} diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationImportsTask.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationImportsTask.java new file mode 100644 index 000000000000..71b16f00bbde --- /dev/null +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationImportsTask.java @@ -0,0 +1,66 @@ +/* + * Copyright 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.autoconfigure; + +import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.util.List; + +import org.gradle.api.DefaultTask; +import org.gradle.api.Task; +import org.gradle.api.file.FileCollection; +import org.gradle.api.file.FileTree; +import org.gradle.api.tasks.InputFiles; +import org.gradle.api.tasks.PathSensitive; +import org.gradle.api.tasks.PathSensitivity; +import org.gradle.api.tasks.SkipWhenEmpty; + +/** + * A {@link Task} that uses a project's auto-configuration imports. + * + * @author Andy Wilkinson + */ +public abstract class AutoConfigurationImportsTask extends DefaultTask { + + static final String IMPORTS_FILE = "META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports"; + + private FileCollection sourceFiles = getProject().getObjects().fileCollection(); + + @InputFiles + @SkipWhenEmpty + @PathSensitive(PathSensitivity.RELATIVE) + public FileTree getSource() { + return this.sourceFiles.getAsFileTree().matching((filter) -> filter.include(IMPORTS_FILE)); + } + + public void setSource(Object source) { + this.sourceFiles = getProject().getObjects().fileCollection().from(source); + } + + protected List loadImports() { + File importsFile = getSource().getSingleFile(); + try { + return Files.readAllLines(importsFile.toPath()); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } + +} diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java index 86a552466b8a..76f0af53f110 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java @@ -16,31 +16,20 @@ package org.springframework.boot.build.autoconfigure; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; import java.util.Collections; -import java.util.List; +import java.util.Map; -import com.tngtech.archunit.core.domain.JavaClass; -import com.tngtech.archunit.lang.ArchCondition; -import com.tngtech.archunit.lang.ArchRule; -import com.tngtech.archunit.lang.ConditionEvents; -import com.tngtech.archunit.lang.SimpleConditionEvent; -import com.tngtech.archunit.lang.syntax.ArchRuleDefinition; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.artifacts.Configuration; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginExtension; -import org.gradle.api.provider.Provider; -import org.gradle.api.tasks.PathSensitivity; import org.gradle.api.tasks.SourceSet; +import org.gradle.api.tasks.TaskProvider; import org.springframework.boot.build.DeployedPlugin; -import org.springframework.boot.build.architecture.ArchitectureCheck; import org.springframework.boot.build.architecture.ArchitecturePlugin; +import org.springframework.boot.build.optional.OptionalDependenciesPlugin; /** * {@link Plugin} for projects that define auto-configuration. When applied, the plugin @@ -70,14 +59,16 @@ public class AutoConfigurationPlugin implements Plugin { */ public static final String AUTO_CONFIGURATION_METADATA_CONFIGURATION_NAME = "autoConfigurationMetadata"; - private static final String AUTO_CONFIGURATION_IMPORTS_PATH = "META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports"; - @Override public void apply(Project project) { project.getPlugins().apply(DeployedPlugin.class); project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> { Configuration annotationProcessors = project.getConfigurations() .getByName(JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME); + SourceSet main = project.getExtensions() + .getByType(JavaPluginExtension.class) + .getSourceSets() + .getByName(SourceSet.MAIN_SOURCE_SET_NAME); annotationProcessors.getDependencies() .add(project.getDependencies() .project(Collections.singletonMap("path", @@ -87,10 +78,6 @@ public void apply(Project project) { .project(Collections.singletonMap("path", ":spring-boot-project:spring-boot-tools:spring-boot-configuration-processor"))); project.getTasks().register("autoConfigurationMetadata", AutoConfigurationMetadata.class, (task) -> { - SourceSet main = project.getExtensions() - .getByType(JavaPluginExtension.class) - .getSourceSets() - .getByName(SourceSet.MAIN_SOURCE_SET_NAME); task.setSourceSet(main); task.dependsOn(main.getClassesTaskName()); task.getOutputFile() @@ -99,74 +86,37 @@ public void apply(Project project) { .add(AutoConfigurationPlugin.AUTO_CONFIGURATION_METADATA_CONFIGURATION_NAME, task.getOutputFile(), (artifact) -> artifact.builtBy(task)); }); + project.getTasks() + .register("checkAutoConfigurationImports", CheckAutoConfigurationImports.class, (task) -> { + task.setSource(main.getResources()); + task.setClasspath(main.getOutput().getClassesDirs()); + task.setDescription("Checks the %s file of the main source set." + .formatted(AutoConfigurationImportsTask.IMPORTS_FILE)); + }); + Configuration requiredClasspath = project.getConfigurations() + .create("autoConfigurationRequiredClasspath") + .extendsFrom(project.getConfigurations().getByName(main.getImplementationConfigurationName()), + project.getConfigurations().getByName(main.getRuntimeOnlyConfigurationName())); + requiredClasspath.getDependencies() + .add(project.getDependencies() + .project(Map.of("path", ":spring-boot-project:spring-boot-autoconfigure"))); + TaskProvider checkAutoConfigurationClasses = project.getTasks() + .register("checkAutoConfigurationClasses", CheckAutoConfigurationClasses.class, (task) -> { + task.setSource(main.getResources()); + task.setClasspath(main.getOutput().getClassesDirs()); + task.setRequiredDependencies(requiredClasspath); + task.setDescription("Checks the auto-configuration classes of the main source set."); + }); project.getPlugins() - .withType(ArchitecturePlugin.class, (plugin) -> configureArchitecturePluginTasks(project)); - }); - } - - private void configureArchitecturePluginTasks(Project project) { - project.getTasks().configureEach((task) -> { - if ("checkArchitectureMain".equals(task.getName()) && task instanceof ArchitectureCheck architectureCheck) { - configureCheckArchitectureMain(project, architectureCheck); - } + .withType(OptionalDependenciesPlugin.class, + (plugin) -> checkAutoConfigurationClasses.configure((check) -> { + Configuration optionalClasspath = project.getConfigurations() + .create("autoConfigurationOptionalClassPath") + .extendsFrom(project.getConfigurations() + .getByName(OptionalDependenciesPlugin.OPTIONAL_CONFIGURATION_NAME)); + check.setOptionalDependencies(optionalClasspath); + })); }); } - private void configureCheckArchitectureMain(Project project, ArchitectureCheck architectureCheck) { - SourceSet main = project.getExtensions() - .getByType(JavaPluginExtension.class) - .getSourceSets() - .getByName(SourceSet.MAIN_SOURCE_SET_NAME); - File resourcesDirectory = main.getOutput().getResourcesDir(); - architectureCheck.dependsOn(main.getProcessResourcesTaskName()); - architectureCheck.getInputs() - .files(resourcesDirectory) - .optional() - .withPathSensitivity(PathSensitivity.RELATIVE); - architectureCheck.getRules() - .add(allClassesAnnotatedWithAutoConfigurationShouldBeListedInAutoConfigurationImports( - autoConfigurationImports(project, resourcesDirectory))); - } - - private ArchRule allClassesAnnotatedWithAutoConfigurationShouldBeListedInAutoConfigurationImports( - Provider imports) { - return ArchRuleDefinition.classes() - .that() - .areAnnotatedWith("org.springframework.boot.autoconfigure.AutoConfiguration") - .should(beListedInAutoConfigurationImports(imports)) - .allowEmptyShould(true); - } - - private ArchCondition beListedInAutoConfigurationImports(Provider imports) { - return new ArchCondition<>("be listed in " + AUTO_CONFIGURATION_IMPORTS_PATH) { - - @Override - public void check(JavaClass item, ConditionEvents events) { - AutoConfigurationImports autoConfigurationImports = imports.get(); - if (!autoConfigurationImports.imports.contains(item.getName())) { - events.add(SimpleConditionEvent.violated(item, - item.getName() + " was not listed in " + autoConfigurationImports.importsFile)); - } - } - - }; - } - - private Provider autoConfigurationImports(Project project, File resourcesDirectory) { - Path importsFile = new File(resourcesDirectory, AUTO_CONFIGURATION_IMPORTS_PATH).toPath(); - return project.provider(() -> { - try { - return new AutoConfigurationImports(project.getProjectDir().toPath().relativize(importsFile), - Files.readAllLines(importsFile)); - } - catch (IOException ex) { - throw new RuntimeException("Failed to read AutoConfiguration.imports", ex); - } - }); - } - - private record AutoConfigurationImports(Path importsFile, List imports) { - - } - } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationClasses.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationClasses.java new file mode 100644 index 000000000000..d56e536ec2e3 --- /dev/null +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationClasses.java @@ -0,0 +1,212 @@ +/* + * 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.autoconfigure; + +import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.StandardOpenOption; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.TreeMap; +import java.util.jar.JarEntry; +import java.util.jar.JarFile; +import java.util.stream.Stream; + +import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileCollection; +import org.gradle.api.provider.SetProperty; +import org.gradle.api.tasks.Classpath; +import org.gradle.api.tasks.OutputDirectory; +import org.gradle.api.tasks.TaskAction; +import org.gradle.api.tasks.VerificationException; +import org.gradle.language.base.plugins.LifecycleBasePlugin; + +/** + * Task to check a project's {@code @AutoConfiguration} classes. + * + * @author Andy Wilkinson + */ +public abstract class CheckAutoConfigurationClasses extends AutoConfigurationImportsTask { + + private FileCollection classpath = getProject().getObjects().fileCollection(); + + private FileCollection optionalDependencies = getProject().getObjects().fileCollection(); + + private FileCollection requiredDependencies = getProject().getObjects().fileCollection(); + + private SetProperty optionalDependencyClassNames = getProject().getObjects().setProperty(String.class); + + private SetProperty requiredDependencyClassNames = getProject().getObjects().setProperty(String.class); + + public CheckAutoConfigurationClasses() { + getOutputDirectory().convention(getProject().getLayout().getBuildDirectory().dir(getName())); + setGroup(LifecycleBasePlugin.VERIFICATION_GROUP); + this.optionalDependencyClassNames.set(getProject().provider(() -> classNamesOf(this.optionalDependencies))); + this.requiredDependencyClassNames.set(getProject().provider(() -> classNamesOf(this.requiredDependencies))); + } + + private static List classNamesOf(FileCollection classpath) { + return classpath.getFiles().stream().flatMap((file) -> { + try (JarFile jarFile = new JarFile(file)) { + return Collections.list(jarFile.entries()) + .stream() + .filter((entry) -> !entry.isDirectory()) + .map(JarEntry::getName) + .filter((entryName) -> entryName.endsWith(".class")) + .map((entryName) -> entryName.substring(0, entryName.length() - ".class".length())) + .map((entryName) -> entryName.replace("/", ".")); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + }).toList(); + } + + @Classpath + public FileCollection getClasspath() { + return this.classpath; + } + + public void setClasspath(Object classpath) { + this.classpath = getProject().getObjects().fileCollection().from(classpath); + } + + @Classpath + public FileCollection getOptionalDependencies() { + return this.optionalDependencies; + } + + public void setOptionalDependencies(Object classpath) { + this.optionalDependencies = getProject().getObjects().fileCollection().from(classpath); + } + + @Classpath + public FileCollection getRequiredDependencies() { + return this.requiredDependencies; + } + + public void setRequiredDependencies(Object classpath) { + this.requiredDependencies = getProject().getObjects().fileCollection().from(classpath); + } + + @OutputDirectory + public abstract DirectoryProperty getOutputDirectory(); + + @TaskAction + void execute() { + Map> problems = new TreeMap<>(); + Set optionalOnlyClassNames = new HashSet<>(this.optionalDependencyClassNames.get()); + Set requiredClassNames = this.requiredDependencyClassNames.get(); + optionalOnlyClassNames.removeAll(requiredClassNames); + classFiles().forEach((classFile) -> { + AutoConfigurationClass autoConfigurationClass = AutoConfigurationClass.of(classFile); + if (autoConfigurationClass != null) { + check(autoConfigurationClass, optionalOnlyClassNames, requiredClassNames, problems); + } + }); + File outputFile = getOutputDirectory().file("failure-report.txt").get().getAsFile(); + writeReport(problems, outputFile); + if (!problems.isEmpty()) { + throw new VerificationException( + "Auto-configuration class check failed. See '%s' for details".formatted(outputFile)); + } + } + + private List classFiles() { + List classFiles = new ArrayList<>(); + for (File root : this.classpath.getFiles()) { + try (Stream files = Files.walk(root.toPath())) { + files.forEach((file) -> { + if (Files.isRegularFile(file) && file.getFileName().toString().endsWith(".class")) { + classFiles.add(file.toFile()); + } + }); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } + return classFiles; + } + + private void check(AutoConfigurationClass autoConfigurationClass, Set optionalOnlyClassNames, + Set requiredClassNames, Map> problems) { + if (!autoConfigurationClass.name().endsWith("AutoConfiguration")) { + problems.computeIfAbsent(autoConfigurationClass.name(), (name) -> new ArrayList<>()) + .add("Name of a class annotated with @AutoConfiguration should end with AutoConfiguration"); + } + autoConfigurationClass.before().forEach((before) -> { + if (optionalOnlyClassNames.contains(before)) { + problems.computeIfAbsent(autoConfigurationClass.name(), (name) -> new ArrayList<>()) + .add("before '%s' is from an optional dependency and should be declared in beforeName" + .formatted(before)); + } + }); + autoConfigurationClass.beforeName().forEach((beforeName) -> { + if (!optionalOnlyClassNames.contains(beforeName)) { + String problem = requiredClassNames.contains(beforeName) + ? "beforeName '%s' is from a required dependency and should be declared in before" + .formatted(beforeName) + : "beforeName '%s' not found".formatted(beforeName); + problems.computeIfAbsent(autoConfigurationClass.name(), (name) -> new ArrayList<>()).add(problem); + } + }); + autoConfigurationClass.after().forEach((after) -> { + if (optionalOnlyClassNames.contains(after)) { + problems.computeIfAbsent(autoConfigurationClass.name(), (name) -> new ArrayList<>()) + .add("after '%s' is from an optional dependency and should be declared in afterName" + .formatted(after)); + } + }); + autoConfigurationClass.afterName().forEach((afterName) -> { + if (!optionalOnlyClassNames.contains(afterName)) { + String problem = requiredClassNames.contains(afterName) + ? "afterName '%s' is from a required dependency and should be declared in after" + .formatted(afterName) + : "afterName '%s' not found".formatted(afterName); + problems.computeIfAbsent(autoConfigurationClass.name(), (name) -> new ArrayList<>()).add(problem); + } + }); + } + + private void writeReport(Map> problems, File outputFile) { + outputFile.getParentFile().mkdirs(); + StringBuilder report = new StringBuilder(); + if (!problems.isEmpty()) { + report.append("Found auto-configuration class problems:%n".formatted()); + problems.forEach((className, classProblems) -> { + report.append(" - %s:%n".formatted(className)); + classProblems.forEach((problem) -> report.append(" - %s%n".formatted(problem))); + }); + } + try { + Files.writeString(outputFile.toPath(), report.toString(), StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } + +} diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java new file mode 100644 index 000000000000..299e6bbdda68 --- /dev/null +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java @@ -0,0 +1,126 @@ +/* + * Copyright 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.autoconfigure; + +import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.nio.file.Files; +import java.nio.file.StandardOpenOption; +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +import org.gradle.api.file.DirectoryProperty; +import org.gradle.api.file.FileCollection; +import org.gradle.api.tasks.Classpath; +import org.gradle.api.tasks.OutputDirectory; +import org.gradle.api.tasks.TaskAction; +import org.gradle.api.tasks.VerificationException; +import org.gradle.language.base.plugins.LifecycleBasePlugin; + +/** + * Task to check the contents of a project's + * {@code META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports} + * file. + * + * @author Andy Wilkinson + */ +public abstract class CheckAutoConfigurationImports extends AutoConfigurationImportsTask { + + private FileCollection classpath = getProject().getObjects().fileCollection(); + + public CheckAutoConfigurationImports() { + getOutputDirectory().convention(getProject().getLayout().getBuildDirectory().dir(getName())); + setGroup(LifecycleBasePlugin.VERIFICATION_GROUP); + } + + @Classpath + public FileCollection getClasspath() { + return this.classpath; + } + + public void setClasspath(Object classpath) { + this.classpath = getProject().getObjects().fileCollection().from(classpath); + } + + @OutputDirectory + public abstract DirectoryProperty getOutputDirectory(); + + @TaskAction + void execute() { + File importsFile = getSource().getSingleFile(); + check(importsFile); + } + + private void check(File importsFile) { + List imports = loadImports(); + List problems = new ArrayList<>(); + for (String imported : imports) { + File classFile = find(imported); + if (classFile == null) { + problems.add("'%s' was not found".formatted(imported)); + } + else if (!correctlyAnnotated(classFile)) { + problems.add("'%s' is not annotated with @AutoConfiguration".formatted(imported)); + } + } + List sortedValues = new ArrayList<>(imports); + Collections.sort(sortedValues); + if (!sortedValues.equals(imports)) { + problems.add("Entries should be sorted alphabetically"); + } + File outputFile = getOutputDirectory().file("failure-report.txt").get().getAsFile(); + writeReport(importsFile, problems, outputFile); + if (!problems.isEmpty()) { + throw new VerificationException("%s check failed. See '%s' for details" + .formatted(AutoConfigurationImportsTask.IMPORTS_FILE, outputFile)); + } + } + + private File find(String className) { + for (File root : this.classpath.getFiles()) { + String classFilePath = className.replace(".", "/") + ".class"; + File classFile = new File(root, classFilePath); + if (classFile.isFile()) { + return classFile; + } + } + return null; + } + + private boolean correctlyAnnotated(File classFile) { + return AutoConfigurationClass.of(classFile) != null; + } + + private void writeReport(File importsFile, List problems, File outputFile) { + outputFile.getParentFile().mkdirs(); + StringBuilder report = new StringBuilder(); + if (!problems.isEmpty()) { + report.append("Found problems in '%s':%n".formatted(importsFile)); + problems.forEach((problem) -> report.append(" - %s%n".formatted(problem))); + } + try { + Files.writeString(outputFile.toPath(), report.toString(), StandardOpenOption.CREATE, + StandardOpenOption.TRUNCATE_EXISTING); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } + +} From d47f1d27f68555db379890fb86c60fa9c17342ef Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 2 Jun 2025 14:17:12 -0700 Subject: [PATCH 036/711] Polish AutoConfigurationPlugin --- .../AutoConfigurationPlugin.java | 156 +++++++++++------- .../DocumentAutoConfigurationClasses.java | 2 - 2 files changed, 98 insertions(+), 60 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java index 76f0af53f110..d53b5bb1ac4b 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/AutoConfigurationPlugin.java @@ -16,19 +16,24 @@ package org.springframework.boot.build.autoconfigure; +import java.util.Arrays; import java.util.Collections; -import java.util.Map; +import java.util.Set; +import java.util.stream.Collectors; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ConfigurationContainer; +import org.gradle.api.artifacts.Dependency; +import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPluginExtension; import org.gradle.api.tasks.SourceSet; +import org.gradle.api.tasks.TaskContainer; import org.gradle.api.tasks.TaskProvider; import org.springframework.boot.build.DeployedPlugin; -import org.springframework.boot.build.architecture.ArchitecturePlugin; import org.springframework.boot.build.optional.OptionalDependenciesPlugin; /** @@ -41,12 +46,7 @@ *

  • Defines a task that produces metadata describing the auto-configuration. The * metadata is made available as an artifact in the {@code autoConfigurationMetadata} * configuration. - *
  • Reacts to the {@link ArchitecturePlugin} being applied and: - *
      - *
    • Adds a rule to the {@code checkArchitectureMain} task to verify that all - * {@code AutoConfiguration} classes are listed in the {@code AutoConfiguration.imports} - * file. - *
    + *
  • Add checks to ensure import files and annotations are correct
  • * * * @author Andy Wilkinson @@ -62,61 +62,101 @@ public class AutoConfigurationPlugin implements Plugin { @Override public void apply(Project project) { project.getPlugins().apply(DeployedPlugin.class); - project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> { - Configuration annotationProcessors = project.getConfigurations() - .getByName(JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME); - SourceSet main = project.getExtensions() + project.getPlugins().withType(JavaPlugin.class, (javaPlugin) -> new Configurer(project).configure()); + } + + private static class Configurer { + + private final Project project; + + private SourceSet main; + + Configurer(Project project) { + this.project = project; + this.main = project.getExtensions() .getByType(JavaPluginExtension.class) .getSourceSets() .getByName(SourceSet.MAIN_SOURCE_SET_NAME); - annotationProcessors.getDependencies() - .add(project.getDependencies() - .project(Collections.singletonMap("path", - ":spring-boot-project:spring-boot-tools:spring-boot-autoconfigure-processor"))); - annotationProcessors.getDependencies() - .add(project.getDependencies() - .project(Collections.singletonMap("path", - ":spring-boot-project:spring-boot-tools:spring-boot-configuration-processor"))); - project.getTasks().register("autoConfigurationMetadata", AutoConfigurationMetadata.class, (task) -> { - task.setSourceSet(main); - task.dependsOn(main.getClassesTaskName()); - task.getOutputFile() - .set(project.getLayout().getBuildDirectory().file("auto-configuration-metadata.properties")); - project.getArtifacts() - .add(AutoConfigurationPlugin.AUTO_CONFIGURATION_METADATA_CONFIGURATION_NAME, task.getOutputFile(), - (artifact) -> artifact.builtBy(task)); - }); - project.getTasks() - .register("checkAutoConfigurationImports", CheckAutoConfigurationImports.class, (task) -> { - task.setSource(main.getResources()); - task.setClasspath(main.getOutput().getClassesDirs()); - task.setDescription("Checks the %s file of the main source set." - .formatted(AutoConfigurationImportsTask.IMPORTS_FILE)); - }); - Configuration requiredClasspath = project.getConfigurations() - .create("autoConfigurationRequiredClasspath") - .extendsFrom(project.getConfigurations().getByName(main.getImplementationConfigurationName()), - project.getConfigurations().getByName(main.getRuntimeOnlyConfigurationName())); + } + + void configure() { + addAnnotationProcessorsDependencies(); + TaskContainer tasks = this.project.getTasks(); + ConfigurationContainer configurations = this.project.getConfigurations(); + tasks.register("autoConfigurationMetadata", AutoConfigurationMetadata.class, + this::configureAutoConfigurationMetadata); + TaskProvider checkAutoConfigurationImports = tasks.register( + "checkAutoConfigurationImports", CheckAutoConfigurationImports.class, + this::configureCheckAutoConfigurationImports); + Configuration requiredClasspath = configurations.create("autoConfigurationRequiredClasspath") + .extendsFrom(configurations.getByName(this.main.getImplementationConfigurationName()), + configurations.getByName(this.main.getRuntimeOnlyConfigurationName())); requiredClasspath.getDependencies() - .add(project.getDependencies() - .project(Map.of("path", ":spring-boot-project:spring-boot-autoconfigure"))); - TaskProvider checkAutoConfigurationClasses = project.getTasks() - .register("checkAutoConfigurationClasses", CheckAutoConfigurationClasses.class, (task) -> { - task.setSource(main.getResources()); - task.setClasspath(main.getOutput().getClassesDirs()); - task.setRequiredDependencies(requiredClasspath); - task.setDescription("Checks the auto-configuration classes of the main source set."); - }); - project.getPlugins() + .add(projectDependency(":spring-boot-project:spring-boot-autoconfigure")); + TaskProvider checkAutoConfigurationClasses = tasks.register( + "checkAutoConfigurationClasses", CheckAutoConfigurationClasses.class, + (task) -> configureCheckAutoConfigurationClasses(requiredClasspath, task)); + this.project.getPlugins() .withType(OptionalDependenciesPlugin.class, - (plugin) -> checkAutoConfigurationClasses.configure((check) -> { - Configuration optionalClasspath = project.getConfigurations() - .create("autoConfigurationOptionalClassPath") - .extendsFrom(project.getConfigurations() - .getByName(OptionalDependenciesPlugin.OPTIONAL_CONFIGURATION_NAME)); - check.setOptionalDependencies(optionalClasspath); - })); - }); + (plugin) -> configureCheckAutoConfigurationClassesForOptionalDependencies(configurations, + checkAutoConfigurationClasses)); + this.project.getTasks() + .getByName(JavaBasePlugin.CHECK_TASK_NAME) + .dependsOn(checkAutoConfigurationImports, checkAutoConfigurationClasses); + } + + private void addAnnotationProcessorsDependencies() { + this.project.getConfigurations() + .getByName(JavaPlugin.ANNOTATION_PROCESSOR_CONFIGURATION_NAME) + .getDependencies() + .addAll(projectDependencies( + ":spring-boot-project:spring-boot-tools:spring-boot-autoconfigure-processor", + ":spring-boot-project:spring-boot-tools:spring-boot-configuration-processor")); + } + + private void configureAutoConfigurationMetadata(AutoConfigurationMetadata task) { + task.setSourceSet(this.main); + task.dependsOn(this.main.getClassesTaskName()); + task.getOutputFile() + .set(this.project.getLayout().getBuildDirectory().file("auto-configuration-metadata.properties")); + this.project.getArtifacts() + .add(AutoConfigurationPlugin.AUTO_CONFIGURATION_METADATA_CONFIGURATION_NAME, task.getOutputFile(), + (artifact) -> artifact.builtBy(task)); + } + + private void configureCheckAutoConfigurationImports(CheckAutoConfigurationImports task) { + task.setSource(this.main.getResources()); + task.setClasspath(this.main.getOutput().getClassesDirs()); + task.setDescription( + "Checks the %s file of the main source set.".formatted(AutoConfigurationImportsTask.IMPORTS_FILE)); + } + + private void configureCheckAutoConfigurationClasses(Configuration requiredClasspath, + CheckAutoConfigurationClasses task) { + task.setSource(this.main.getResources()); + task.setClasspath(this.main.getOutput().getClassesDirs()); + task.setRequiredDependencies(requiredClasspath); + task.setDescription("Checks the auto-configuration classes of the main source set."); + } + + private void configureCheckAutoConfigurationClassesForOptionalDependencies( + ConfigurationContainer configurations, + TaskProvider checkAutoConfigurationClasses) { + checkAutoConfigurationClasses.configure((check) -> { + Configuration optionalClasspath = configurations.create("autoConfigurationOptionalClassPath") + .extendsFrom(configurations.getByName(OptionalDependenciesPlugin.OPTIONAL_CONFIGURATION_NAME)); + check.setOptionalDependencies(optionalClasspath); + }); + } + + private Set projectDependencies(String... paths) { + return Arrays.stream(paths).map((path) -> projectDependency(path)).collect(Collectors.toSet()); + } + + private Dependency projectDependency(String path) { + return this.project.getDependencies().project(Collections.singletonMap("path", path)); + } + } } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java index 4d34cba44d91..f76682282e1d 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java @@ -80,14 +80,12 @@ private void writeTable(AutoConfiguration autoConfigurationClasses) throws IOExc writer.println("[cols=\"4,1\"]"); writer.println("|==="); writer.println("| Configuration Class | Links"); - for (AutoConfigurationClass autoConfigurationClass : autoConfigurationClasses.classes) { writer.println(); writer.printf("| {code-spring-boot}/spring-boot-project/%s/src/main/java/%s.java[`%s`]%n", autoConfigurationClasses.module, autoConfigurationClass.path, autoConfigurationClass.name); writer.printf("| xref:api:java/%s.html[javadoc]%n", autoConfigurationClass.path); } - writer.println("|==="); } } From c688ae345cd19d6834237052928eb030411632ce Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 2 Jun 2025 17:10:54 -0700 Subject: [PATCH 037/711] Improve error report to include expected sorted output --- .../CheckAutoConfigurationImports.java | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java index 299e6bbdda68..06ce6a78ae73 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/CheckAutoConfigurationImports.java @@ -20,10 +20,10 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.nio.file.Files; -import java.nio.file.StandardOpenOption; import java.util.ArrayList; import java.util.Collections; import java.util.List; +import java.util.stream.Collectors; import org.gradle.api.file.DirectoryProperty; import org.gradle.api.file.FileCollection; @@ -82,7 +82,11 @@ else if (!correctlyAnnotated(classFile)) { List sortedValues = new ArrayList<>(imports); Collections.sort(sortedValues); if (!sortedValues.equals(imports)) { - problems.add("Entries should be sorted alphabetically"); + File sortedOutputFile = getOutputDirectory().file("sorted-" + importsFile.getName()).get().getAsFile(); + writeString(sortedOutputFile, + sortedValues.stream().collect(Collectors.joining(System.lineSeparator())) + System.lineSeparator()); + problems.add("Entries should be sorted alphabetically (expect content written to " + + sortedOutputFile.getAbsolutePath() + ")"); } File outputFile = getOutputDirectory().file("failure-report.txt").get().getAsFile(); writeReport(importsFile, problems, outputFile); @@ -114,9 +118,12 @@ private void writeReport(File importsFile, List problems, File outputFil report.append("Found problems in '%s':%n".formatted(importsFile)); problems.forEach((problem) -> report.append(" - %s%n".formatted(problem))); } + writeString(outputFile, report.toString()); + } + + private void writeString(File file, String content) { try { - Files.writeString(outputFile.toPath(), report.toString(), StandardOpenOption.CREATE, - StandardOpenOption.TRUNCATE_EXISTING); + Files.writeString(file.toPath(), content); } catch (IOException ex) { throw new UncheckedIOException(ex); From 76caa3cb2974cefd864f2a4c890c9dbfb43075d2 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 2 Jun 2025 17:12:51 -0700 Subject: [PATCH 038/711] Fix problems found by improved auto-configuration checks --- .../JacksonEndpointAutoConfiguration.java | 6 +-- .../HibernateMetricsAutoConfiguration.java | 6 +-- ...ot.autoconfigure.AutoConfiguration.imports | 20 ++++----- .../reactor/ReactorAutoConfiguration.java | 4 +- ...ot.autoconfigure.AutoConfiguration.imports | 42 +++++++++---------- 5 files changed, 37 insertions(+), 41 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/jackson/JacksonEndpointAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/jackson/JacksonEndpointAutoConfiguration.java index 9a409fa55d63..ad5bcd396de5 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/jackson/JacksonEndpointAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/jackson/JacksonEndpointAutoConfiguration.java @@ -21,13 +21,12 @@ import com.fasterxml.jackson.databind.SerializationFeature; import org.springframework.boot.actuate.endpoint.jackson.EndpointObjectMapper; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration; import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; /** @@ -36,8 +35,7 @@ * @author Phillip Webb * @since 3.0.0 */ -@Configuration(proxyBeanMethods = false) -@AutoConfigureAfter(JacksonAutoConfiguration.class) +@AutoConfiguration(after = JacksonAutoConfiguration.class) public class JacksonEndpointAutoConfiguration { @Bean diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java index 9de4febb50a9..661e29ed091b 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/metrics/orm/jpa/HibernateMetricsAutoConfiguration.java @@ -28,12 +28,11 @@ import org.springframework.beans.factory.SmartInitializingSingleton; import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigureAfter; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnBean; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration; -import org.springframework.context.annotation.Configuration; import org.springframework.util.StringUtils; /** @@ -44,8 +43,7 @@ * @author Stephane Nicoll * @since 2.1.0 */ -@Configuration(proxyBeanMethods = false) -@AutoConfigureAfter({ MetricsAutoConfiguration.class, HibernateJpaAutoConfiguration.class, +@AutoConfiguration(after = { MetricsAutoConfiguration.class, HibernateJpaAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class }) @ConditionalOnClass({ EntityManagerFactory.class, SessionFactory.class, HibernateMetrics.class, MeterRegistry.class }) @ConditionalOnBean({ EntityManagerFactory.class, MeterRegistry.class }) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index d3a6fc7ead54..12904887ad12 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -7,14 +7,18 @@ org.springframework.boot.actuate.autoconfigure.beans.BeansEndpointAutoConfigurat org.springframework.boot.actuate.autoconfigure.cache.CachesEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.cassandra.CassandraHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.cassandra.CassandraReactiveHealthContributorAutoConfiguration -org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryActuatorAutoConfiguration org.springframework.boot.actuate.autoconfigure.cloudfoundry.reactive.ReactiveCloudFoundryActuatorAutoConfiguration +org.springframework.boot.actuate.autoconfigure.cloudfoundry.servlet.CloudFoundryActuatorAutoConfiguration org.springframework.boot.actuate.autoconfigure.condition.ConditionsReportEndpointAutoConfiguration -org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.context.ShutdownEndpointAutoConfiguration +org.springframework.boot.actuate.autoconfigure.context.properties.ConfigurationPropertiesReportEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.couchbase.CouchbaseHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.couchbase.CouchbaseReactiveHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.data.elasticsearch.ElasticsearchReactiveHealthContributorAutoConfiguration +org.springframework.boot.actuate.autoconfigure.data.mongo.MongoHealthContributorAutoConfiguration +org.springframework.boot.actuate.autoconfigure.data.mongo.MongoReactiveHealthContributorAutoConfiguration +org.springframework.boot.actuate.autoconfigure.data.redis.RedisHealthContributorAutoConfiguration +org.springframework.boot.actuate.autoconfigure.data.redis.RedisReactiveHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.elasticsearch.ElasticsearchRestHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.endpoint.jackson.JacksonEndpointAutoConfiguration @@ -70,8 +74,6 @@ org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetri org.springframework.boot.actuate.autoconfigure.metrics.export.stackdriver.StackdriverMetricsExportAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.export.statsd.StatsdMetricsExportAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.export.wavefront.WavefrontMetricsExportAutoConfiguration -org.springframework.boot.actuate.autoconfigure.observation.batch.BatchObservationAutoConfiguration -org.springframework.boot.actuate.autoconfigure.observation.graphql.GraphQlObservationAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.integration.IntegrationMetricsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.jdbc.DataSourcePoolMetricsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.jersey.JerseyServerMetricsAutoConfiguration @@ -81,21 +83,19 @@ org.springframework.boot.actuate.autoconfigure.metrics.r2dbc.ConnectionPoolMetri org.springframework.boot.actuate.autoconfigure.metrics.redis.LettuceMetricsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.startup.StartupTimeMetricsListenerAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.task.TaskExecutorMetricsAutoConfiguration -org.springframework.boot.actuate.autoconfigure.observation.web.client.HttpClientObservationsAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.web.jetty.JettyMetricsAutoConfiguration -org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration org.springframework.boot.actuate.autoconfigure.metrics.web.tomcat.TomcatMetricsAutoConfiguration -org.springframework.boot.actuate.autoconfigure.data.mongo.MongoHealthContributorAutoConfiguration -org.springframework.boot.actuate.autoconfigure.data.mongo.MongoReactiveHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.neo4j.Neo4jHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration +org.springframework.boot.actuate.autoconfigure.observation.batch.BatchObservationAutoConfiguration +org.springframework.boot.actuate.autoconfigure.observation.graphql.GraphQlObservationAutoConfiguration +org.springframework.boot.actuate.autoconfigure.observation.web.client.HttpClientObservationsAutoConfiguration +org.springframework.boot.actuate.autoconfigure.observation.web.reactive.WebFluxObservationAutoConfiguration org.springframework.boot.actuate.autoconfigure.observation.web.servlet.WebMvcObservationAutoConfiguration org.springframework.boot.actuate.autoconfigure.opentelemetry.OpenTelemetryAutoConfiguration org.springframework.boot.actuate.autoconfigure.quartz.QuartzEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.r2dbc.ConnectionFactoryHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.r2dbc.R2dbcObservationAutoConfiguration -org.springframework.boot.actuate.autoconfigure.data.redis.RedisHealthContributorAutoConfiguration -org.springframework.boot.actuate.autoconfigure.data.redis.RedisReactiveHealthContributorAutoConfiguration org.springframework.boot.actuate.autoconfigure.sbom.SbomEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksEndpointAutoConfiguration org.springframework.boot.actuate.autoconfigure.scheduling.ScheduledTasksObservabilityAutoConfiguration diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/reactor/ReactorAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/reactor/ReactorAutoConfiguration.java index 9323e6eca46a..9ab522efdf4b 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/reactor/ReactorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/reactor/ReactorAutoConfiguration.java @@ -18,10 +18,10 @@ import reactor.core.publisher.Hooks; +import org.springframework.boot.autoconfigure.AutoConfiguration; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; import org.springframework.boot.context.properties.EnableConfigurationProperties; -import org.springframework.context.annotation.Configuration; /** * {@link EnableAutoConfiguration Auto-configuration} for Reactor. @@ -29,7 +29,7 @@ * @author Brian Clozel * @since 3.2.0 */ -@Configuration(proxyBeanMethods = false) +@AutoConfiguration @ConditionalOnClass(Hooks.class) @EnableConfigurationProperties(ReactorProperties.class) public class ReactorAutoConfiguration { diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports b/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports index 38fe003d37fd..20af895d5757 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports @@ -1,6 +1,7 @@ org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration -org.springframework.boot.autoconfigure.aop.AopAutoConfiguration org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration +org.springframework.boot.autoconfigure.aop.AopAutoConfiguration +org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration org.springframework.boot.autoconfigure.batch.BatchAutoConfiguration org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration org.springframework.boot.autoconfigure.cassandra.CassandraAutoConfiguration @@ -45,10 +46,10 @@ org.springframework.boot.autoconfigure.elasticsearch.ReactiveElasticsearchClient org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration org.springframework.boot.autoconfigure.freemarker.FreeMarkerAutoConfiguration org.springframework.boot.autoconfigure.graphql.GraphQlAutoConfiguration -org.springframework.boot.autoconfigure.graphql.data.GraphQlReactiveQueryByExampleAutoConfiguration -org.springframework.boot.autoconfigure.graphql.data.GraphQlReactiveQuerydslAutoConfiguration org.springframework.boot.autoconfigure.graphql.data.GraphQlQueryByExampleAutoConfiguration org.springframework.boot.autoconfigure.graphql.data.GraphQlQuerydslAutoConfiguration +org.springframework.boot.autoconfigure.graphql.data.GraphQlReactiveQueryByExampleAutoConfiguration +org.springframework.boot.autoconfigure.graphql.data.GraphQlReactiveQuerydslAutoConfiguration org.springframework.boot.autoconfigure.graphql.reactive.GraphQlWebFluxAutoConfiguration org.springframework.boot.autoconfigure.graphql.rsocket.GraphQlRSocketAutoConfiguration org.springframework.boot.autoconfigure.graphql.rsocket.RSocketGraphQlClientAutoConfiguration @@ -68,23 +69,22 @@ org.springframework.boot.autoconfigure.info.ProjectInfoAutoConfiguration org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration org.springframework.boot.autoconfigure.jackson.JacksonAutoConfiguration org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration +org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration org.springframework.boot.autoconfigure.jdbc.JdbcClientAutoConfiguration org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration org.springframework.boot.autoconfigure.jdbc.JndiDataSourceAutoConfiguration org.springframework.boot.autoconfigure.jdbc.XADataSourceAutoConfiguration -org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration org.springframework.boot.autoconfigure.jms.JmsAutoConfiguration -org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration org.springframework.boot.autoconfigure.jms.JndiConnectionFactoryAutoConfiguration org.springframework.boot.autoconfigure.jms.activemq.ActiveMQAutoConfiguration org.springframework.boot.autoconfigure.jms.artemis.ArtemisAutoConfiguration +org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration org.springframework.boot.autoconfigure.jooq.JooqAutoConfiguration org.springframework.boot.autoconfigure.jsonb.JsonbAutoConfiguration org.springframework.boot.autoconfigure.kafka.KafkaAutoConfiguration -org.springframework.boot.autoconfigure.availability.ApplicationAvailabilityAutoConfiguration -org.springframework.boot.autoconfigure.ldap.embedded.EmbeddedLdapAutoConfiguration org.springframework.boot.autoconfigure.ldap.LdapAutoConfiguration +org.springframework.boot.autoconfigure.ldap.embedded.EmbeddedLdapAutoConfiguration org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration org.springframework.boot.autoconfigure.mail.MailSenderAutoConfiguration org.springframework.boot.autoconfigure.mail.MailSenderValidatorAutoConfiguration @@ -104,21 +104,21 @@ org.springframework.boot.autoconfigure.rsocket.RSocketMessagingAutoConfiguration org.springframework.boot.autoconfigure.rsocket.RSocketRequesterAutoConfiguration org.springframework.boot.autoconfigure.rsocket.RSocketServerAutoConfiguration org.springframework.boot.autoconfigure.rsocket.RSocketStrategiesAutoConfiguration -org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration -org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration -org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration +org.springframework.boot.autoconfigure.security.oauth2.client.reactive.ReactiveOAuth2ClientAutoConfiguration +org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration +org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration +org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration +org.springframework.boot.autoconfigure.security.oauth2.server.servlet.OAuth2AuthorizationServerAutoConfiguration +org.springframework.boot.autoconfigure.security.oauth2.server.servlet.OAuth2AuthorizationServerJwtAutoConfiguration org.springframework.boot.autoconfigure.security.reactive.ReactiveSecurityAutoConfiguration org.springframework.boot.autoconfigure.security.reactive.ReactiveUserDetailsServiceAutoConfiguration org.springframework.boot.autoconfigure.security.rsocket.RSocketSecurityAutoConfiguration org.springframework.boot.autoconfigure.security.saml2.Saml2RelyingPartyAutoConfiguration +org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration +org.springframework.boot.autoconfigure.security.servlet.SecurityFilterAutoConfiguration +org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration org.springframework.boot.autoconfigure.sendgrid.SendGridAutoConfiguration org.springframework.boot.autoconfigure.session.SessionAutoConfiguration -org.springframework.boot.autoconfigure.security.oauth2.client.servlet.OAuth2ClientAutoConfiguration -org.springframework.boot.autoconfigure.security.oauth2.client.reactive.ReactiveOAuth2ClientAutoConfiguration -org.springframework.boot.autoconfigure.security.oauth2.resource.servlet.OAuth2ResourceServerAutoConfiguration -org.springframework.boot.autoconfigure.security.oauth2.resource.reactive.ReactiveOAuth2ResourceServerAutoConfiguration -org.springframework.boot.autoconfigure.security.oauth2.server.servlet.OAuth2AuthorizationServerAutoConfiguration -org.springframework.boot.autoconfigure.security.oauth2.server.servlet.OAuth2AuthorizationServerJwtAutoConfiguration org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration org.springframework.boot.autoconfigure.ssl.SslAutoConfiguration org.springframework.boot.autoconfigure.task.TaskExecutionAutoConfiguration @@ -140,13 +140,13 @@ org.springframework.boot.autoconfigure.web.reactive.error.ErrorWebFluxAutoConfig org.springframework.boot.autoconfigure.web.reactive.function.client.ClientHttpConnectorAutoConfiguration org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration -org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration -org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.HttpEncodingAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.MultipartAutoConfiguration +org.springframework.boot.autoconfigure.web.servlet.ServletWebServerFactoryAutoConfiguration org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration -org.springframework.boot.autoconfigure.websocket.reactive.WebSocketReactiveAutoConfiguration -org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration -org.springframework.boot.autoconfigure.websocket.servlet.WebSocketMessagingAutoConfiguration +org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration org.springframework.boot.autoconfigure.webservices.WebServicesAutoConfiguration org.springframework.boot.autoconfigure.webservices.client.WebServiceTemplateAutoConfiguration +org.springframework.boot.autoconfigure.websocket.reactive.WebSocketReactiveAutoConfiguration +org.springframework.boot.autoconfigure.websocket.servlet.WebSocketMessagingAutoConfiguration +org.springframework.boot.autoconfigure.websocket.servlet.WebSocketServletAutoConfiguration From 8495722376d888483c978f8f8357410bb92c6556 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Wed, 4 Jun 2025 10:01:01 +0200 Subject: [PATCH 039/711] Downgrade Awailitility to 4.2.2 This commit restores the support of Kotlin 1 Closes gh-45673 --- spring-boot-project/spring-boot-dependencies/build.gradle | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c28e338e7ba1..fde7831c578d 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -90,7 +90,11 @@ bom { releaseNotes("https://github.com/assertj/assertj/releases/tag/assertj-build-{version}") } } - library("Awaitility", "4.3.0") { + library("Awaitility", "4.2.2") { + prohibit { + versionRange "[4.3.0,)" + because "it requires Kotlin 2" + } group("org.awaitility") { modules = [ "awaitility", From 3d510b2ed5cb2c838e21aef600643a23a50f9800 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:17 +0100 Subject: [PATCH 040/711] Start building against Micrometer 1.13.15 snapshots See gh-45749 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index ae1121153f25..e4d2951055d6 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1421,7 +1421,7 @@ bom { releaseNotes("https://github.com/apache/maven-war-plugin/releases/tag/maven-war-plugin-{version}") } } - library("Micrometer", "1.13.14") { + library("Micrometer", "1.13.15-SNAPSHOT") { considerSnapshots() group("io.micrometer") { modules = [ From f9f14af13a614ed77152e64e226f034e2fbd4147 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:22 +0100 Subject: [PATCH 041/711] Start building against Micrometer Tracing 1.3.13 snapshots See gh-45750 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index e4d2951055d6..5b2b742c9e1e 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1443,7 +1443,7 @@ bom { releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}") } } - library("Micrometer Tracing", "1.3.12") { + library("Micrometer Tracing", "1.3.13-SNAPSHOT") { considerSnapshots() group("io.micrometer") { bom("micrometer-tracing-bom") From d05295df9f25aa5823aae56fbc2b556ff6df393a Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:26 +0100 Subject: [PATCH 042/711] Start building against Reactor Bom 2023.0.19 snapshots See gh-45751 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 5b2b742c9e1e..0286a94ca0cc 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1887,7 +1887,7 @@ bom { ] } } - library("Reactor Bom", "2023.0.18") { + library("Reactor Bom", "2023.0.19-SNAPSHOT") { considerSnapshots() calendarName = "Reactor" group("io.projectreactor") { From 869a05c76836e674de2bca5d3739964090fa6e70 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:30 +0100 Subject: [PATCH 043/711] Start building against Spring AMQP 3.1.12 snapshots See gh-45752 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 0286a94ca0cc..5c5f8cdfc915 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2082,7 +2082,7 @@ bom { ] } } - library("Spring AMQP", "3.1.11") { + library("Spring AMQP", "3.1.12-SNAPSHOT") { considerSnapshots() group("org.springframework.amqp") { bom("spring-amqp-bom") From 7bdd3df7e196b5f5958a8c49cb8420b30b24477d Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:35 +0100 Subject: [PATCH 044/711] Start building against Spring Authorization Server 1.3.7 snapshots See gh-45753 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 5c5f8cdfc915..a9ab2dc58e7b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2097,7 +2097,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-amqp/releases/tag/v{version}") } } - library("Spring Authorization Server", "1.3.6") { + library("Spring Authorization Server", "1.3.7-SNAPSHOT") { considerSnapshots() group("org.springframework.security") { modules = [ From 2095e83c27b04306ae127ade8390965052b3e6bc Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:39 +0100 Subject: [PATCH 045/711] Start building against Spring Data Bom 2024.0.13 snapshots See gh-45754 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a9ab2dc58e7b..f1a012d31c0b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2129,7 +2129,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-batch/releases/tag/v{version}") } } - library("Spring Data Bom", "2024.0.12") { + library("Spring Data Bom", "2024.0.13-SNAPSHOT") { considerSnapshots() calendarName = "Spring Data Release" group("org.springframework.data") { From 9b046b5246872c2c24f1954e64d6c8957d835e57 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:43 +0100 Subject: [PATCH 046/711] Start building against Spring Framework 6.1.21 snapshots See gh-45755 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 69408b4c53ca..efb74a30512e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ mavenVersion=3.9.4 mockitoVersion=5.11.0 nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.2 -springFrameworkVersion=6.1.20 +springFrameworkVersion=6.1.21-SNAPSHOT springFramework60xVersion=6.0.23 tomcatVersion=10.1.41 From b045c05ff598c2e0ce8dfb4238c8ea7ae3672426 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:48 +0100 Subject: [PATCH 047/711] Start building against Spring Integration 6.3.11 snapshots See gh-45756 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f1a012d31c0b..abd5e1f5bbb3 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2194,7 +2194,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-hateoas/releases/tag/{version}") } } - library("Spring Integration", "6.3.10") { + library("Spring Integration", "6.3.11-SNAPSHOT") { considerSnapshots() group("org.springframework.integration") { bom("spring-integration-bom") From a497d953ceb7281dd960c50085aeca12ce29400c Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:52 +0100 Subject: [PATCH 048/711] Start building against Spring Kafka 3.2.10 snapshots See gh-45757 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index abd5e1f5bbb3..b2c9aaef8858 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2209,7 +2209,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-integration/releases/tag/v{version}") } } - library("Spring Kafka", "3.2.9") { + library("Spring Kafka", "3.2.10-SNAPSHOT") { considerSnapshots() group("org.springframework.kafka") { modules = [ From 37a6c6dcfbb82d8cb67bc360498d15f538977c68 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:56:56 +0100 Subject: [PATCH 049/711] Start building against Spring LDAP 3.2.13 snapshots See gh-45758 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index b2c9aaef8858..7c38810b4dc0 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2227,7 +2227,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-kafka/releases/tag/v{version}") } } - library("Spring LDAP", "3.2.12") { + library("Spring LDAP", "3.2.13-SNAPSHOT") { considerSnapshots() group("org.springframework.ldap") { modules = [ From cb0b7efc89b9e09c66b16e70e17a07ab863f3158 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:57:00 +0100 Subject: [PATCH 050/711] Start building against Spring Pulsar 1.1.13 snapshots See gh-45759 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 7c38810b4dc0..cc4b0086c7ce 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2247,7 +2247,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-ldap/releases/tag/{version}") } } - library("Spring Pulsar", "1.1.12") { + library("Spring Pulsar", "1.1.13-SNAPSHOT") { considerSnapshots() group("org.springframework.pulsar") { bom("spring-pulsar-bom") From 479b7337cbe6e745f7c02e7299f0cf3fdf050298 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:57:05 +0100 Subject: [PATCH 051/711] Start building against Spring RESTDocs 3.0.4 snapshots See gh-45760 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index cc4b0086c7ce..53126179560e 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2262,7 +2262,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-pulsar/releases/tag/v{version}") } } - library("Spring RESTDocs", "3.0.3") { + library("Spring RESTDocs", "3.0.4-SNAPSHOT") { considerSnapshots() group("org.springframework.restdocs") { bom("spring-restdocs-bom") From 451c76e0dca66d2ed4a8291caf4fbe3aae6922c5 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:57:09 +0100 Subject: [PATCH 052/711] Start building against Spring Security 6.3.10 snapshots See gh-45761 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 53126179560e..87dc07318dd6 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2290,7 +2290,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-retry/releases/tag/v{version}") } } - library("Spring Security", "6.3.9") { + library("Spring Security", "6.3.10-SNAPSHOT") { considerSnapshots() group("org.springframework.security") { bom("spring-security-bom") From 34905267be20c37fb2de92d16ed1f42aa1175d60 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 10:57:13 +0100 Subject: [PATCH 053/711] Start building against Spring WS 4.0.15 snapshots See gh-45762 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 87dc07318dd6..68e3b542565b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2324,7 +2324,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-session/releases/tag/{version}") } } - library("Spring WS", "4.0.14") { + library("Spring WS", "4.0.15-SNAPSHOT") { considerSnapshots() group("org.springframework.ws") { bom("spring-ws-bom") From c3f0f7be3b2789ed097cb1305564f3b75420db36 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:19:36 +0100 Subject: [PATCH 054/711] Start building against Micrometer 1.14.8 snapshots See gh-45763 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 84b9bf6239ec..77ab5dce0620 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1440,7 +1440,7 @@ bom { releaseNotes("https://github.com/apache/maven-war-plugin/releases/tag/maven-war-plugin-{version}") } } - library("Micrometer", "1.14.7") { + library("Micrometer", "1.14.8-SNAPSHOT") { considerSnapshots() group("io.micrometer") { modules = [ From 736de7c9e9df30e6e8990103f1f652e5ac770d08 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:19:41 +0100 Subject: [PATCH 055/711] Start building against Micrometer Tracing 1.4.7 snapshots See gh-45764 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 77ab5dce0620..11f790cecef1 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1462,7 +1462,7 @@ bom { releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}") } } - library("Micrometer Tracing", "1.4.6") { + library("Micrometer Tracing", "1.4.7-SNAPSHOT") { considerSnapshots() group("io.micrometer") { bom("micrometer-tracing-bom") From 181f5e4938e225f52576b71b7654f9f4258dbbda Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:19:45 +0100 Subject: [PATCH 056/711] Start building against Reactor Bom 2024.0.7 snapshots See gh-45765 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 11f790cecef1..7857b60bed5b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1870,7 +1870,7 @@ bom { ] } } - library("Reactor Bom", "2024.0.6") { + library("Reactor Bom", "2024.0.7-SNAPSHOT") { considerSnapshots() calendarName = "Reactor" group("io.projectreactor") { From 2ebe96a0ee433bc2a7edc7466f88dac7c19ab355 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:19:49 +0100 Subject: [PATCH 057/711] Start building against Spring Authorization Server 1.4.4 snapshots See gh-45766 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 7857b60bed5b..a4c2782cd7f9 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2080,7 +2080,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-amqp/releases/tag/v{version}") } } - library("Spring Authorization Server", "1.4.3") { + library("Spring Authorization Server", "1.4.4-SNAPSHOT") { considerSnapshots() group("org.springframework.security") { modules = [ From 926590ad5d600130957952255919144f43107314 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:19:53 +0100 Subject: [PATCH 058/711] Start building against Spring Data Bom 2024.1.7 snapshots See gh-45767 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a4c2782cd7f9..e9fcae6b2b73 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2112,7 +2112,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-batch/releases/tag/v{version}") } } - library("Spring Data Bom", "2024.1.6") { + library("Spring Data Bom", "2024.1.7-SNAPSHOT") { considerSnapshots() calendarName = "Spring Data Release" group("org.springframework.data") { From 43298ab73e492911eeea5ac6e57932970db3f231 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:19:57 +0100 Subject: [PATCH 059/711] Start building against Spring Framework 6.2.8 snapshots See gh-45768 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 1d4e4d313cce..4ba74fd21c6f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ mavenVersion=3.9.4 mockitoVersion=5.14.2 nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.3 -springFrameworkVersion=6.2.7 +springFrameworkVersion=6.2.8-SNAPSHOT springFramework60xVersion=6.0.23 tomcatVersion=10.1.41 From ec980a5a3433a9736efefc722b1d969ef5d0a17f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:01 +0100 Subject: [PATCH 060/711] Start building against Spring Kafka 3.3.7 snapshots See gh-45769 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index e9fcae6b2b73..a8683a71ef7b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2192,7 +2192,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-integration/releases/tag/v{version}") } } - library("Spring Kafka", "3.3.6") { + library("Spring Kafka", "3.3.7-SNAPSHOT") { considerSnapshots() group("org.springframework.kafka") { modules = [ From 4ea1e1515d3aa20051f7bafe48dccc82c0411877 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:06 +0100 Subject: [PATCH 061/711] Start building against Spring LDAP 3.2.13 snapshots See gh-45770 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a8683a71ef7b..82487969a54f 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2210,7 +2210,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-kafka/releases/tag/v{version}") } } - library("Spring LDAP", "3.2.12") { + library("Spring LDAP", "3.2.13-SNAPSHOT") { considerSnapshots() group("org.springframework.ldap") { modules = [ From 1c9dda97c4afaa07cb95477edda48b75c7d66fc5 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:10 +0100 Subject: [PATCH 062/711] Start building against Spring Pulsar 1.2.7 snapshots See gh-45771 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 82487969a54f..3c7112134e24 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2230,7 +2230,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-ldap/releases/tag/{version}") } } - library("Spring Pulsar", "1.2.6") { + library("Spring Pulsar", "1.2.7-SNAPSHOT") { considerSnapshots() group("org.springframework.pulsar") { bom("spring-pulsar-bom") From 9e210dc18300a983e5adc541894f928a428323ef Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:14 +0100 Subject: [PATCH 063/711] Start building against Spring RESTDocs 3.0.4 snapshots See gh-45772 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3c7112134e24..a0a05240a516 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2245,7 +2245,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-pulsar/releases/tag/v{version}") } } - library("Spring RESTDocs", "3.0.3") { + library("Spring RESTDocs", "3.0.4-SNAPSHOT") { considerSnapshots() group("org.springframework.restdocs") { bom("spring-restdocs-bom") From 63375d87e25768cf2e8bd19bd44774eb8d7194a3 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:18 +0100 Subject: [PATCH 064/711] Start building against Spring Security 6.4.7 snapshots See gh-45773 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a0a05240a516..d2aed955ecf3 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2273,7 +2273,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-retry/releases/tag/v{version}") } } - library("Spring Security", "6.4.6") { + library("Spring Security", "6.4.7-SNAPSHOT") { considerSnapshots() group("org.springframework.security") { bom("spring-security-bom") From 938babdfe1e8ce15745178b4ce6b218371dc690b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:22 +0100 Subject: [PATCH 065/711] Start building against Spring Session 3.4.4 snapshots See gh-45774 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index d2aed955ecf3..60bc8b916ec2 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2288,7 +2288,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-security/releases/tag/{version}") } } - library("Spring Session", "3.4.3") { + library("Spring Session", "3.4.4-SNAPSHOT") { considerSnapshots() prohibit { startsWith(["Apple-", "Bean-", "Corn-", "Dragonfruit-"]) From 0bf83dee9f1be52125b33a074fc02a67bb3fbe82 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:20:26 +0100 Subject: [PATCH 066/711] Start building against Spring WS 4.0.15 snapshots See gh-45775 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 60bc8b916ec2..002c1eb33bb5 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2307,7 +2307,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-session/releases/tag/{version}") } } - library("Spring WS", "4.0.14") { + library("Spring WS", "4.0.15-SNAPSHOT") { considerSnapshots() group("org.springframework.ws") { bom("spring-ws-bom") From cb08cc5083664f2b876b6cc8e22633fe98ad636e Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:41:46 +0100 Subject: [PATCH 067/711] Start building against Micrometer 1.15.1 snapshots See gh-45776 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index fde7831c578d..0ef41ffefa01 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1558,7 +1558,7 @@ bom { releaseNotes("https://github.com/apache/maven-war-plugin/releases/tag/maven-war-plugin-{version}") } } - library("Micrometer", "1.15.0") { + library("Micrometer", "1.15.1-SNAPSHOT") { considerSnapshots() group("io.micrometer") { modules = [ From 4f0bb568a0288792f7a67ad70f386fb74bcc88ad Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:41:50 +0100 Subject: [PATCH 068/711] Start building against Micrometer Tracing 1.5.1 snapshots See gh-45777 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 0ef41ffefa01..de73597b4001 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1580,7 +1580,7 @@ bom { releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}") } } - library("Micrometer Tracing", "1.5.0") { + library("Micrometer Tracing", "1.5.1-SNAPSHOT") { considerSnapshots() group("io.micrometer") { bom("micrometer-tracing-bom") From 61448d942f553e35c6adb77c759468c46a0b54fb Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:41:54 +0100 Subject: [PATCH 069/711] Start building against Reactor Bom 2024.0.7 snapshots See gh-45778 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index de73597b4001..c170c0c01c11 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1988,7 +1988,7 @@ bom { ] } } - library("Reactor Bom", "2024.0.6") { + library("Reactor Bom", "2024.0.7-SNAPSHOT") { considerSnapshots() calendarName = "Reactor" group("io.projectreactor") { From 8efb46ffb645e17bdf26e96654d331bda1a919fb Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:41:58 +0100 Subject: [PATCH 070/711] Start building against Spring Authorization Server 1.5.1 snapshots See gh-45779 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c170c0c01c11..49368a4b4f33 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2206,7 +2206,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-amqp/releases/tag/v{version}") } } - library("Spring Authorization Server", "1.5.0") { + library("Spring Authorization Server", "1.5.1-SNAPSHOT") { considerSnapshots() group("org.springframework.security") { modules = [ From e34f8de75fbf9fd7b6d2ac370cb63ccf2cd7695b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:02 +0100 Subject: [PATCH 071/711] Start building against Spring Data Bom 2025.0.1 snapshots See gh-45780 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 49368a4b4f33..07586f74958e 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2238,7 +2238,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-batch/releases/tag/v{version}") } } - library("Spring Data Bom", "2025.0.0") { + library("Spring Data Bom", "2025.0.1-SNAPSHOT") { prohibit { versionRange "[2025.1.0-M1,)" because "it exceeds our baseline" From 8ba1e41dbb6e62f295647f4ec75fd62c095b3d11 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:06 +0100 Subject: [PATCH 072/711] Start building against Spring Framework 6.2.8 snapshots See gh-45781 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index da702cf9edfc..961153a58b9f 100644 --- a/gradle.properties +++ b/gradle.properties @@ -19,7 +19,7 @@ mavenVersion=3.9.4 mockitoVersion=5.17.0 nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.4 -springFrameworkVersion=6.2.7 +springFrameworkVersion=6.2.8-SNAPSHOT springFramework60xVersion=6.0.23 tomcatVersion=10.1.41 From ce45de9550948b6ee2f9772145d416ab0e5f12a9 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:11 +0100 Subject: [PATCH 073/711] Start building against Spring Kafka 3.3.7 snapshots See gh-45782 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 07586f74958e..f0792cd7820a 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2330,7 +2330,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-integration/releases/tag/v{version}") } } - library("Spring Kafka", "3.3.6") { + library("Spring Kafka", "3.3.7-SNAPSHOT") { considerSnapshots() group("org.springframework.kafka") { modules = [ From e45b4cc92235417c02660bf3927df3f484f23668 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:15 +0100 Subject: [PATCH 074/711] Start building against Spring LDAP 3.3.1 snapshots See gh-45783 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f0792cd7820a..981f7a131828 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2348,7 +2348,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-kafka/releases/tag/v{version}") } } - library("Spring LDAP", "3.3.0") { + library("Spring LDAP", "3.3.1-SNAPSHOT") { considerSnapshots() group("org.springframework.ldap") { modules = [ From 8b22a23e0d5479ce4f037ec343dbf2204c42c2bf Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:19 +0100 Subject: [PATCH 075/711] Start building against Spring Pulsar 1.2.7 snapshots See gh-45784 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 981f7a131828..9be2b33d72a7 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2368,7 +2368,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-ldap/releases/tag/{version}") } } - library("Spring Pulsar", "1.2.6") { + library("Spring Pulsar", "1.2.7-SNAPSHOT") { considerSnapshots() group("org.springframework.pulsar") { bom("spring-pulsar-bom") From ec2d43476a0ed9d1ec96b8e72852e33dfb835832 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:23 +0100 Subject: [PATCH 076/711] Start building against Spring RESTDocs 3.0.4 snapshots See gh-45785 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 9be2b33d72a7..36e76801873b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2383,7 +2383,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-pulsar/releases/tag/v{version}") } } - library("Spring RESTDocs", "3.0.3") { + library("Spring RESTDocs", "3.0.4-SNAPSHOT") { considerSnapshots() group("org.springframework.restdocs") { bom("spring-restdocs-bom") From 3b0b009e6cf350b6280d8a0254de979b548c7ea6 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:27 +0100 Subject: [PATCH 077/711] Start building against Spring Security 6.5.1 snapshots See gh-45786 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 36e76801873b..6f40c1ef2785 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2411,7 +2411,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-retry/releases/tag/v{version}") } } - library("Spring Security", "6.5.0") { + library("Spring Security", "6.5.1-SNAPSHOT") { considerSnapshots() group("org.springframework.security") { bom("spring-security-bom") From a2f6ec4d1b30ca967f6425fe311831a6cd1a1854 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 4 Jun 2025 11:42:31 +0100 Subject: [PATCH 078/711] Start building against Spring Session 3.5.1 snapshots See gh-45787 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 6f40c1ef2785..b4206e24b087 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2426,7 +2426,7 @@ bom { releaseNotes("https://github.com/spring-projects/spring-security/releases/tag/{version}") } } - library("Spring Session", "3.5.0") { + library("Spring Session", "3.5.1-SNAPSHOT") { considerSnapshots() prohibit { startsWith(["Apple-", "Bean-", "Corn-", "Dragonfruit-"]) From 23496fd36bbb0b7d97cc19f6101e91fe742636bf Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 4 Jun 2025 15:11:54 -0700 Subject: [PATCH 079/711] Polish --- .../connection/r2dbc/ConnectionFactoryOptionsBuilder.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java index 3157443079eb..cd1cafbcebb4 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java @@ -24,7 +24,6 @@ import io.r2dbc.spi.Option; import org.springframework.boot.docker.compose.core.RunningService; -import org.springframework.boot.docker.compose.service.connection.jdbc.JdbcUrlBuilder; import org.springframework.util.Assert; import org.springframework.util.StringUtils; @@ -46,7 +45,7 @@ public class ConnectionFactoryOptionsBuilder { private final int sourcePort; /** - * Create a new {@link JdbcUrlBuilder} instance. + * Create a new {@link ConnectionFactoryOptionsBuilder} instance. * @param driver the driver protocol * @param containerPort the source container port */ From 853bb46e93ea81e7ae64acfbb79fb9aa3a0cfd88 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 4 Jun 2025 15:14:05 -0700 Subject: [PATCH 080/711] Polish --- .../connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java index 91fd383c3687..9371c5cd2031 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java @@ -25,7 +25,6 @@ import org.springframework.boot.docker.compose.core.ConnectionPorts; import org.springframework.boot.docker.compose.core.RunningService; -import org.springframework.boot.docker.compose.service.connection.jdbc.JdbcUrlBuilder; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatIllegalArgumentException; @@ -45,7 +44,7 @@ class ConnectionFactoryOptionsBuilderTests { @Test void createWhenDriverProtocolIsNullThrowsException() { - assertThatIllegalArgumentException().isThrownBy(() -> new JdbcUrlBuilder(null, 123)) + assertThatIllegalArgumentException().isThrownBy(() -> new ConnectionFactoryOptionsBuilder(null, 123)) .withMessage("DriverProtocol must not be null"); } From 77e51fd6809c40c4b36b8f8277d5b384de770326 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 4 Jun 2025 15:36:35 -0700 Subject: [PATCH 081/711] Polish --- .../connection/r2dbc/ConnectionFactoryOptionsBuilder.java | 2 +- .../connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java index cd1cafbcebb4..b41cdbed2479 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java +++ b/spring-boot-project/spring-boot-docker-compose/src/main/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilder.java @@ -46,7 +46,7 @@ public class ConnectionFactoryOptionsBuilder { /** * Create a new {@link ConnectionFactoryOptionsBuilder} instance. - * @param driver the driver protocol + * @param driver the driver * @param containerPort the source container port */ public ConnectionFactoryOptionsBuilder(String driver, int containerPort) { diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java index 9371c5cd2031..0714a7481b14 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java @@ -45,7 +45,7 @@ class ConnectionFactoryOptionsBuilderTests { @Test void createWhenDriverProtocolIsNullThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> new ConnectionFactoryOptionsBuilder(null, 123)) - .withMessage("DriverProtocol must not be null"); + .withMessage("Driver must not be null"); } @Test From 8b85f92bf928337338e67086e5307288c8f7f5b3 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 4 Jun 2025 17:31:42 -0700 Subject: [PATCH 082/711] Fix merge conflict error --- .../r2dbc/ConnectionFactoryOptionsBuilderTests.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java index e5afaff98d2c..498cf534dd4c 100644 --- a/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java +++ b/spring-boot-project/spring-boot-docker-compose/src/test/java/org/springframework/boot/docker/compose/service/connection/r2dbc/ConnectionFactoryOptionsBuilderTests.java @@ -45,11 +45,7 @@ class ConnectionFactoryOptionsBuilderTests { @Test void createWhenDriverProtocolIsNullThrowsException() { assertThatIllegalArgumentException().isThrownBy(() -> new ConnectionFactoryOptionsBuilder(null, 123)) -<<<<<<< HEAD - .withMessage("'driverProtocol' must not be null"); -======= - .withMessage("Driver must not be null"); ->>>>>>> 3.4.x + .withMessage("'driver' must not be null"); } @Test From cc4bb1e262a4e6771fce6aaa62a67f40e23be9ab Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Fri, 6 Jun 2025 08:40:06 +0200 Subject: [PATCH 083/711] Upgrade to Gradle 8.14.2 Closes gh-45797 --- gradle/wrapper/gradle-wrapper.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 002b867c48b3..ff23a68d70f3 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.2-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME From 6f1216c3692d9ee5871e4f7ceab3262fbfbac2f6 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 6 Jun 2025 08:53:14 +0100 Subject: [PATCH 084/711] Use ConditionContext ClassLoader to load OutcomeExposureContributors Fixes gh-45800 --- .../OnAvailableEndpointCondition.java | 22 +++--- .../ConditionalOnAvailableEndpointTests.java | 7 ++ ...estEndpointOutcomeExposureContributor.java | 72 +++++++++++++++++++ 3 files changed, 91 insertions(+), 10 deletions(-) create mode 100644 spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/OnAvailableEndpointCondition.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/OnAvailableEndpointCondition.java index 4d3595da8c98..5659f895d903 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/OnAvailableEndpointCondition.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/OnAvailableEndpointCondition.java @@ -71,12 +71,11 @@ class OnAvailableEndpointCondition extends SpringBootCondition { @Override public ConditionOutcome getMatchOutcome(ConditionContext context, AnnotatedTypeMetadata metadata) { - Environment environment = context.getEnvironment(); MergedAnnotation conditionAnnotation = metadata.getAnnotations() .get(ConditionalOnAvailableEndpoint.class); Class target = getTarget(context, metadata, conditionAnnotation); MergedAnnotation endpointAnnotation = getEndpointAnnotation(target); - return getMatchOutcome(environment, conditionAnnotation, endpointAnnotation); + return getMatchOutcome(context, conditionAnnotation, endpointAnnotation); } private Class getTarget(ConditionContext context, AnnotatedTypeMetadata metadata, @@ -109,16 +108,17 @@ protected MergedAnnotation getEndpointAnnotation(Class target) { return getEndpointAnnotation(extension.getClass("endpoint")); } - private ConditionOutcome getMatchOutcome(Environment environment, + private ConditionOutcome getMatchOutcome(ConditionContext context, MergedAnnotation conditionAnnotation, MergedAnnotation endpointAnnotation) { ConditionMessage.Builder message = ConditionMessage.forCondition(ConditionalOnAvailableEndpoint.class); + Environment environment = context.getEnvironment(); EndpointId endpointId = EndpointId.of(environment, endpointAnnotation.getString("id")); ConditionOutcome accessOutcome = getAccessOutcome(environment, endpointAnnotation, endpointId, message); if (!accessOutcome.isMatch()) { return accessOutcome; } - ConditionOutcome exposureOutcome = getExposureOutcome(environment, conditionAnnotation, endpointAnnotation, + ConditionOutcome exposureOutcome = getExposureOutcome(context, conditionAnnotation, endpointAnnotation, endpointId, message); return (exposureOutcome != null) ? exposureOutcome : ConditionOutcome.noMatch(message.because("not exposed")); } @@ -137,11 +137,11 @@ private Access getAccess(Environment environment, EndpointId endpointId, Access .accessFor(endpointId, defaultAccess); } - private ConditionOutcome getExposureOutcome(Environment environment, + private ConditionOutcome getExposureOutcome(ConditionContext context, MergedAnnotation conditionAnnotation, MergedAnnotation endpointAnnotation, EndpointId endpointId, Builder message) { Set exposures = getExposures(conditionAnnotation); - Set outcomeContributors = getExposureOutcomeContributors(environment); + Set outcomeContributors = getExposureOutcomeContributors(context); for (EndpointExposureOutcomeContributor outcomeContributor : outcomeContributors) { ConditionOutcome outcome = outcomeContributor.getExposureOutcome(endpointId, exposures, message); if (outcome != null && outcome.isMatch()) { @@ -166,7 +166,8 @@ private Set replaceCloudFoundryExposure(Collection getExposureOutcomeContributors(Environment environment) { + private Set getExposureOutcomeContributors(ConditionContext context) { + Environment environment = context.getEnvironment(); Set contributors = exposureOutcomeContributorsCache.get(environment); if (contributors == null) { contributors = new LinkedHashSet<>(); @@ -174,15 +175,16 @@ private Set getExposureOutcomeContributors(E if (environment.getProperty(JMX_ENABLED_KEY, Boolean.class, false)) { contributors.add(new StandardExposureOutcomeContributor(environment, EndpointExposure.JMX)); } - contributors.addAll(loadExposureOutcomeContributors(environment)); + contributors.addAll(loadExposureOutcomeContributors(context.getClassLoader(), environment)); exposureOutcomeContributorsCache.put(environment, contributors); } return contributors; } - private List loadExposureOutcomeContributors(Environment environment) { + private List loadExposureOutcomeContributors(ClassLoader classLoader, + Environment environment) { ArgumentResolver argumentResolver = ArgumentResolver.of(Environment.class, environment); - return SpringFactoriesLoader.forDefaultResourceLocation() + return SpringFactoriesLoader.forDefaultResourceLocation(classLoader) .load(EndpointExposureOutcomeContributor.class, argumentResolver); } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java index 9636b5ac1f00..a08986a41e4e 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/ConditionalOnAvailableEndpointTests.java @@ -294,6 +294,13 @@ void whenDisabledAndAccessibleByDefaultEndpointCanBeAvailable() { .run((context) -> assertThat(context).hasSingleBean(DisabledButAccessibleEndpoint.class)); } + @Test + @WithTestEndpointOutcomeExposureContributor + void exposureOutcomeContributorCanMakeEndpointAvailable() { + this.contextRunner.withPropertyValues("management.endpoints.test.exposure.include=test") + .run((context) -> assertThat(context).hasSingleBean(TestEndpoint.class)); + } + @Endpoint(id = "health") static class HealthEndpoint { diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java new file mode 100644 index 000000000000..16edf2d1d445 --- /dev/null +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/endpoint/condition/WithTestEndpointOutcomeExposureContributor.java @@ -0,0 +1,72 @@ +/* + * 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.actuate.autoconfigure.endpoint.condition; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Inherited; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.Set; + +import org.springframework.boot.actuate.autoconfigure.endpoint.expose.EndpointExposure; +import org.springframework.boot.actuate.autoconfigure.endpoint.expose.IncludeExcludeEndpointFilter; +import org.springframework.boot.actuate.endpoint.EndpointId; +import org.springframework.boot.actuate.endpoint.ExposableEndpoint; +import org.springframework.boot.autoconfigure.condition.ConditionMessage.Builder; +import org.springframework.boot.autoconfigure.condition.ConditionOutcome; +import org.springframework.boot.testsupport.classpath.resources.WithResource; +import org.springframework.core.env.Environment; +import org.springframework.core.io.support.SpringFactoriesLoader; + +/** + * Makes a test {@link EndpointExposureOutcomeContributor} available via + * {@link SpringFactoriesLoader}. + * + * @author Andy Wilkinson + */ +@Inherited +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +@WithResource(name = "META-INF/spring.factories", + content = """ + org.springframework.boot.actuate.autoconfigure.endpoint.condition.EndpointExposureOutcomeContributor=\ + org.springframework.boot.actuate.autoconfigure.endpoint.condition.WithTestEndpointOutcomeExposureContributor.TestEndpointExposureOutcomeContributor + """) +public @interface WithTestEndpointOutcomeExposureContributor { + + class TestEndpointExposureOutcomeContributor implements EndpointExposureOutcomeContributor { + + private final IncludeExcludeEndpointFilter filter; + + TestEndpointExposureOutcomeContributor(Environment environment) { + this.filter = new IncludeExcludeEndpointFilter<>(ExposableEndpoint.class, environment, + "management.endpoints.test.exposure"); + } + + @Override + public ConditionOutcome getExposureOutcome(EndpointId endpointId, Set exposures, + Builder message) { + if (this.filter.match(endpointId)) { + return ConditionOutcome.match(); + } + return null; + } + + } + +} From 954ae300b0fedac7207fa7ae0c34d5b53401f07a Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 6 Jun 2025 09:19:15 +0100 Subject: [PATCH 085/711] Stop relying on CloudFoundry in HealthEndpointAutoConfigurationTests Closes gh-45721 --- .../HealthEndpointAutoConfigurationTests.java | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java index 3a836c878bbb..e6fd5710fc91 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/health/HealthEndpointAutoConfigurationTests.java @@ -24,6 +24,7 @@ import reactor.core.publisher.Mono; import org.springframework.boot.actuate.autoconfigure.endpoint.EndpointAutoConfiguration; +import org.springframework.boot.actuate.autoconfigure.endpoint.condition.WithTestEndpointOutcomeExposureContributor; import org.springframework.boot.actuate.autoconfigure.endpoint.web.WebEndpointAutoConfiguration; import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointConfiguration.HealthEndpointGroupMembershipValidator.NoSuchHealthContributorException; import org.springframework.boot.actuate.autoconfigure.health.HealthEndpointReactiveWebExtensionConfiguration.WebFluxAdditionalHealthEndpointPathsConfiguration; @@ -32,6 +33,7 @@ import org.springframework.boot.actuate.endpoint.ApiVersion; import org.springframework.boot.actuate.endpoint.SecurityContext; import org.springframework.boot.actuate.endpoint.web.WebEndpointResponse; +import org.springframework.boot.actuate.endpoint.web.WebEndpointsSupplier; import org.springframework.boot.actuate.endpoint.web.WebServerNamespace; import org.springframework.boot.actuate.health.CompositeHealthContributor; import org.springframework.boot.actuate.health.DefaultHealthContributorRegistry; @@ -53,7 +55,9 @@ import org.springframework.boot.actuate.health.StatusAggregator; import org.springframework.boot.actuate.health.SystemHealth; import org.springframework.boot.autoconfigure.AutoConfigurations; +import org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener; import org.springframework.boot.autoconfigure.web.servlet.DispatcherServletAutoConfiguration; +import org.springframework.boot.logging.LogLevel; import org.springframework.boot.test.context.FilteredClassLoader; import org.springframework.boot.test.context.runner.ApplicationContextRunner; import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; @@ -343,42 +347,56 @@ void runWithReactiveContextAndIndicatorsInParentContextFindsIndicators() { } @Test + @WithTestEndpointOutcomeExposureContributor void additionalHealthEndpointsPathsTolerateHealthEndpointThatIsNotWebExposed() { this.contextRunner .withConfiguration(AutoConfigurations.of(DispatcherServletAutoConfiguration.class, EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class)) .withPropertyValues("management.endpoints.web.exposure.exclude=*", - "management.endpoints.cloudfoundry.exposure.include=*", "spring.main.cloud-platform=cloud_foundry") + "management.endpoints.test.exposure.include=*") .run((context) -> { - assertThat(context).hasSingleBean(MvcAdditionalHealthEndpointPathsConfiguration.class); assertThat(context).hasNotFailed(); + assertThat(context).hasSingleBean(HealthEndpoint.class); + assertThat(context).hasSingleBean(HealthEndpointWebExtension.class); + assertThat(context.getBean(WebEndpointsSupplier.class).getEndpoints()).isEmpty(); + assertThat(context).hasSingleBean(MvcAdditionalHealthEndpointPathsConfiguration.class); }); } @Test + @WithTestEndpointOutcomeExposureContributor void additionalJerseyHealthEndpointsPathsTolerateHealthEndpointThatIsNotWebExposed() { this.contextRunner .withConfiguration( AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class)) - .withClassLoader(new FilteredClassLoader(DispatcherServlet.class)) + .withClassLoader( + new FilteredClassLoader(Thread.currentThread().getContextClassLoader(), DispatcherServlet.class)) + .withInitializer(ConditionEvaluationReportLoggingListener.forLogLevel(LogLevel.INFO)) .withPropertyValues("management.endpoints.web.exposure.exclude=*", - "management.endpoints.cloudfoundry.exposure.include=*", "spring.main.cloud-platform=cloud_foundry") + "management.endpoints.test.exposure.include=*") .run((context) -> { - assertThat(context).hasSingleBean(JerseyAdditionalHealthEndpointPathsConfiguration.class); assertThat(context).hasNotFailed(); + assertThat(context).hasSingleBean(HealthEndpoint.class); + assertThat(context).hasSingleBean(HealthEndpointWebExtension.class); + assertThat(context.getBean(WebEndpointsSupplier.class).getEndpoints()).isEmpty(); + assertThat(context).hasSingleBean(JerseyAdditionalHealthEndpointPathsConfiguration.class); }); } @Test + @WithTestEndpointOutcomeExposureContributor void additionalReactiveHealthEndpointsPathsTolerateHealthEndpointThatIsNotWebExposed() { this.reactiveContextRunner .withConfiguration( AutoConfigurations.of(EndpointAutoConfiguration.class, WebEndpointAutoConfiguration.class)) .withPropertyValues("management.endpoints.web.exposure.exclude=*", - "management.endpoints.cloudfoundry.exposure.include=*", "spring.main.cloud-platform=cloud_foundry") + "management.endpoints.test.exposure.include=*") .run((context) -> { - assertThat(context).hasSingleBean(WebFluxAdditionalHealthEndpointPathsConfiguration.class); assertThat(context).hasNotFailed(); + assertThat(context).hasSingleBean(HealthEndpoint.class); + assertThat(context).hasSingleBean(ReactiveHealthEndpointWebExtension.class); + assertThat(context.getBean(WebEndpointsSupplier.class).getEndpoints()).isEmpty(); + assertThat(context).hasSingleBean(WebFluxAdditionalHealthEndpointPathsConfiguration.class); }); } @@ -505,4 +523,9 @@ public HealthEndpointGroups postProcessHealthEndpointGroups(HealthEndpointGroups } + @Configuration(proxyBeanMethods = false) + static class UnconditionalHealthEndpointWebExtensionConfiguration extends HealthEndpointWebExtensionConfiguration { + + } + } From de54d4df8957d071b94fb586171ac59562a46cca Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Fri, 6 Jun 2025 11:10:01 +0100 Subject: [PATCH 086/711] Improve linking to Testcontainers' javadoc Closes gh-45802 --- .../antora/AntoraAsciidocAttributes.java | 23 ------------------ .../antora-asciidoc-attributes.properties | 19 --------------- .../spring-boot-dependencies/build.gradle | 24 +++++++++++++++++-- .../pages/testing/testcontainers.adoc | 6 ++--- 4 files changed, 25 insertions(+), 47 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java b/buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java index 663db3a8079f..d8b6e4d55a12 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/antora/AntoraAsciidocAttributes.java @@ -178,24 +178,6 @@ private void addVersionAttributes(Map attributes, Map attributes, Map< internal.put("dotxversion-" + name, majorMinor + ".x"); } - private void addTestcontainersDependencyVersion(Map attributes, Map internal, - String artifactId) { - addDependencyVersion(attributes, "testcontainers-" + artifactId, "org.testcontainers:" + artifactId); - } - private void addDependencyVersion(Map attributes, String name, String groupAndArtifactId) { attributes.put("version-" + name, getVersion(groupAndArtifactId)); } diff --git a/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties b/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties index 3da569d0a4f4..d7e566ffe031 100644 --- a/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties +++ b/buildSrc/src/main/resources/org/springframework/boot/build/antora/antora-asciidoc-attributes.properties @@ -76,25 +76,6 @@ url-spring-data-rest-docs=https://docs.spring.io/spring-data/rest/reference/{ant url-spring-data-rest-site=https://spring.io/projects/spring-data-rest url-spring-data-rest-javadoc=https://docs.spring.io/spring-data/rest/docs/{dotxversion-spring-data-rest}/api url-spring-data-site=https://spring.io/projects/spring-data -url-testcontainers-docs=https://java.testcontainers.org -url-testcontainers-activemq-javadoc=https://javadoc.io/doc/org.testcontainers/activemq/{version-testcontainers-activemq} -url-testcontainers-cassandra-javadoc=https://javadoc.io/doc/org.testcontainers/cassandra/{version-testcontainers-cassandra} -url-testcontainers-couchbase-javadoc=https://javadoc.io/doc/org.testcontainers/couchbase/{version-testcontainers-couchbase} -url-testcontainers-elasticsearch-javadoc=https://javadoc.io/doc/org.testcontainers/elasticsearch/{version-testcontainers-elasticsearch} -url-testcontainers-jdbc-javadoc=https://javadoc.io/doc/org.testcontainers/jdbc/{version-testcontainers-jdbc} -url-testcontainers-kafka-javadoc=https://javadoc.io/doc/org.testcontainers/kafka/{version-testcontainers-kafka} -url-testcontainers-mariadb-javadoc=https://javadoc.io/doc/org.testcontainers/mariadb/{version-testcontainers-mariadb} -url-testcontainers-mongodb-javadoc=https://javadoc.io/doc/org.testcontainers/mongodb/{version-testcontainers-mongodb} -url-testcontainers-mssqlserver-javadoc=https://javadoc.io/doc/org.testcontainers/mssqlserver/{version-testcontainers-mssqlserver} -url-testcontainers-mysql-javadoc=https://javadoc.io/doc/org.testcontainers/mysql/{version-testcontainers-mysql} -url-testcontainers-neo4j-javadoc=https://javadoc.io/doc/org.testcontainers/neo4j/{version-testcontainers-neo4j} -url-testcontainers-oracle-xe-javadoc=https://javadoc.io/doc/org.testcontainers/oracle-xe/{version-testcontainers-oracle-xe} -url-testcontainers-oracle-free-javadoc=https://javadoc.io/doc/org.testcontainers/oracle-free/{version-testcontainers-oracle-free} -url-testcontainers-postgresql-javadoc=https://javadoc.io/doc/org.testcontainers/postgresql/{version-testcontainers-postgresql} -url-testcontainers-pulsar-javadoc=https://javadoc.io/doc/org.testcontainers/pulsar/{version-testcontainers-pulsar} -url-testcontainers-rabbitmq-javadoc=https://javadoc.io/doc/org.testcontainers/rabbitmq/{version-testcontainers-rabbitmq} -url-testcontainers-redpanda-javadoc=https://javadoc.io/doc/org.testcontainers/redpanda/{version-testcontainers-redpanda} -url-testcontainers-r2dbc-javadoc=https://javadoc.io/doc/org.testcontainers/r2dbc/{version-testcontainers-r2dbc} url-jackson-annotations-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-annotations/{version-jackson-annotations} url-jackson-core-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-core/{version-jackson-core} url-jackson-databind-javadoc=https://javadoc.io/doc/com.fasterxml.jackson.core/jackson-databind/{version-jackson-databind} diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 68e3b542565b..c8f3bb3dee24 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2355,9 +2355,29 @@ bom { bom("testcontainers-bom") } links { - site("https://java.testcontainers.org") - javadoc("https://javadoc.io/doc/org.testcontainers/testcontainers/{version}", "org.testcontainers") + docs("https://java.testcontainers.org") + javadoc("testcontainers", version -> "https://javadoc.io/doc/org.testcontainers/testcontainers/%s".formatted(version), "org.testcontainers") + javadoc("testcontainers-activemq", version -> "https://javadoc.io/doc/org.testcontainers/activemq/%s".formatted(version), "org.testcontainers.activemq") + javadoc("testcontainers-cassandra", version -> "https://javadoc.io/doc/org.testcontainers/cassandra/%s".formatted(version)) + javadoc("testcontainers-couchbase", version -> "https://javadoc.io/doc/org.testcontainers/couchbase/%s".formatted(version), "org.testcontainers.couchbase") + javadoc("testcontainers-elasticsearch", version -> "https://javadoc.io/doc/org.testcontainers/elasticsearch/%s".formatted(version), "org.testcontainers.elasticsearch") + javadoc("testcontainers-jdbc", version -> "https://javadoc.io/doc/org.testcontainers/jdbc/%s".formatted(version)) + javadoc("testcontainers-junit-jupiter", version -> "https://javadoc.io/doc/org.testcontainers/junit-jupiter/%s".formatted(version), "org.testcontainers.junit.jupiter") + javadoc("testcontainers-kafka", version -> "https://javadoc.io/doc/org.testcontainers/kafka/%s".formatted(version), "org.testcontainers.kafka") + javadoc("testcontainers-mariadb", version -> "https://javadoc.io/doc/org.testcontainers/mariadb/%s".formatted(version)) + javadoc("testcontainers-mongodb", version -> "https://javadoc.io/doc/org.testcontainers/mongodb/%s".formatted(version)) + javadoc("testcontainers-mssqlserver", version -> "https://javadoc.io/doc/org.testcontainers/mssqlserver/%s".formatted(version)) + javadoc("testcontainers-mysql", version -> "https://javadoc.io/doc/org.testcontainers/mysql/%s".formatted(version)) + javadoc("testcontainers-neo4j", version -> "https://javadoc.io/doc/org.testcontainers/neo4j/%s".formatted(version)) + javadoc("testcontainers-oracle-xe", version -> "https://javadoc.io/doc/org.testcontainers/oracle-xe/%s".formatted(version)) + javadoc("testcontainers-oracle-free", version -> "https://javadoc.io/doc/org.testcontainers/oracle-free/%s".formatted(version), "org.testcontainers.oracle") + javadoc("testcontainers-postgresql", version -> "https://javadoc.io/doc/org.testcontainers/postgresql/%s".formatted(version)) + javadoc("testcontainers-pulsar", version -> "https://javadoc.io/doc/org.testcontainers/pulsar/%s".formatted(version)) + javadoc("testcontainers-rabbitmq", version -> "https://javadoc.io/doc/org.testcontainers/rabbitmq/%s".formatted(version)) + javadoc("testcontainers-redpanda", version -> "https://javadoc.io/doc/org.testcontainers/redpanda/%s".formatted(version), "org.testcontainers.redpanda") + javadoc("testcontainers-r2dbc", version -> "https://javadoc.io/doc/org.testcontainers/r2dbc/%s".formatted(version), "org.testcontainers.r2dbc") releaseNotes("https://github.com/testcontainers/testcontainers-java/releases/tag/{version}") + site("https://java.testcontainers.org") } } library("Thymeleaf", "3.1.3.RELEASE") { diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc index 5cde95b53965..da4a3c3350f5 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/reference/pages/testing/testcontainers.adoc @@ -49,7 +49,7 @@ NOTE: In most cases, you will additionally need to configure the application to A common pattern with Testcontainers is to declare the container instances as static fields in an interface. -For example, the following interface declares two containers, one named `mongo` of type javadoc:org.testcontainers.containers.MongoDBContainer[] and another named `neo4j` of type javadoc:org.testcontainers.containers.Neo4jContainer.Neo4jContainer[]: +For example, the following interface declares two containers, one named `mongo` of type javadoc:{url-testcontainers-mongodb-javadoc}/org.testcontainers.containers.MongoDBContainer[] and another named `neo4j` of type javadoc:{url-testcontainers-neo4j-javadoc}/org.testcontainers.containers.Neo4jContainer[]: include-code::MyContainers[] @@ -141,7 +141,7 @@ The following service connection factories are provided in the `spring-boot-test | Containers of type javadoc:{url-testcontainers-jdbc-javadoc}/org.testcontainers.containers.JdbcDatabaseContainer[] | javadoc:org.springframework.boot.autoconfigure.kafka.KafkaConnectionDetails[] -| Containers of type javadoc:{url-testcontainers-kafka-javadoc}/org.testcontainers.containers.KafkaContainer[] or javadoc:org.testcontainers.redpanda.RedpandaContainer[] +| Containers of type javadoc:org.testcontainers.kafka.KafkaContainer[] or javadoc:org.testcontainers.redpanda.RedpandaContainer[] | javadoc:org.springframework.boot.autoconfigure.liquibase.LiquibaseConnectionDetails[] | Containers of type javadoc:{url-testcontainers-jdbc-javadoc}/org.testcontainers.containers.JdbcDatabaseContainer[] @@ -162,7 +162,7 @@ The following service connection factories are provided in the `spring-boot-test | Containers of type javadoc:{url-testcontainers-pulsar-javadoc}/org.testcontainers.containers.PulsarContainer[] | javadoc:org.springframework.boot.autoconfigure.r2dbc.R2dbcConnectionDetails[] -| Containers of type javadoc:{url-testcontainers-mariadb-javadoc}/org.testcontainers.containers.MariaDBContainer[], javadoc:{url-testcontainers-mssqlserver-javadoc}/org.testcontainers.containers.MSSQLServerContainer[], javadoc:{url-testcontainers-mysql-javadoc}/org.testcontainers.containers.MySQLContainer[], javadoc:{url-testcontainers-oracle-free-javadoc}/org.testcontainers.OracleContainer[OracleContainer (free)], javadoc:{url-testcontainers-oracle-xe-javadoc}/org.testcontainers.oracle.OracleContainer[OracleContainer (XE)] or javadoc:{url-testcontainers-postgresql-javadoc}/org.testcontainers.containers.PostgreSQLContainer[] +| Containers of type javadoc:{url-testcontainers-mariadb-javadoc}/org.testcontainers.containers.MariaDBContainer[], javadoc:{url-testcontainers-mssqlserver-javadoc}/org.testcontainers.containers.MSSQLServerContainer[], javadoc:{url-testcontainers-mysql-javadoc}/org.testcontainers.containers.MySQLContainer[], javadoc:org.testcontainers.oracle.OracleContainer[OracleContainer (free)], javadoc:{url-testcontainers-oracle-xe-javadoc}/org.testcontainers.containers.OracleContainer[OracleContainer (XE)] or javadoc:{url-testcontainers-postgresql-javadoc}/org.testcontainers.containers.PostgreSQLContainer[] | javadoc:org.springframework.boot.autoconfigure.amqp.RabbitConnectionDetails[] | Containers of type javadoc:{url-testcontainers-rabbitmq-javadoc}/org.testcontainers.containers.RabbitMQContainer[] From b8417c8221c1d2154279cd699b73c2e191f2378f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:19 +0200 Subject: [PATCH 087/711] Upgrade to Groovy 4.0.27 Closes gh-45805 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c8f3bb3dee24..fc61309c0b65 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -458,7 +458,7 @@ bom { releaseNotes("https://github.com/graphql-java/graphql-java/releases/tag/v{version}") } } - library("Groovy", "4.0.26") { + library("Groovy", "4.0.27") { group("org.apache.groovy") { bom("groovy-bom") } From a32be05751fe734bee74a4e7aac1e54ea6f741fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:23 +0200 Subject: [PATCH 088/711] Upgrade to Infinispan 15.0.15.Final Closes gh-45806 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index fc61309c0b65..f03e5a350ff1 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -625,7 +625,7 @@ bom { ] } } - library("Infinispan", "15.0.14.Final") { + library("Infinispan", "15.0.15.Final") { group("org.infinispan") { bom("infinispan-bom") } From f7f1c1315bcca5bb0dbecf67c4ecb236e335137b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:27 +0200 Subject: [PATCH 089/711] Upgrade to Jaybird 5.0.8.java11 Closes gh-45807 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f03e5a350ff1..d0d9517c72a4 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -903,7 +903,7 @@ bom { releaseNotes("https://github.com/jaxen-xpath/jaxen/releases/tag/v{version}") } } - library("Jaybird", "5.0.7.java11") { + library("Jaybird", "5.0.8.java11") { prohibit { endsWith ".java8" because "we use the .java11 version" From b163e6dbeae70c57e8ce2a701fce3d026c59e7c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:31 +0200 Subject: [PATCH 090/711] Upgrade to Jetty Reactive HTTPClient 4.0.10 Closes gh-45808 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index d0d9517c72a4..ae8e62f12a18 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -966,7 +966,7 @@ bom { releaseNotes("https://github.com/eclipse-ee4j/jersey/releases/tag/{version}") } } - library("Jetty Reactive HTTPClient", "4.0.9") { + library("Jetty Reactive HTTPClient", "4.0.10") { group("org.eclipse.jetty") { modules = [ "jetty-reactive-httpclient" From 8b138301066a15c26cba04efc9d875d77a24b687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:35 +0200 Subject: [PATCH 091/711] Upgrade to Jetty 12.0.22 Closes gh-45809 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index ae8e62f12a18..3a238b593144 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -973,7 +973,7 @@ bom { ] } } - library("Jetty", "12.0.21") { + library("Jetty", "12.0.22") { group("org.eclipse.jetty.ee10") { bom("jetty-ee10-bom") } From ccbac594163f4be45a24deda014a89cd2e91031f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:39 +0200 Subject: [PATCH 092/711] Upgrade to Netty 4.1.122.Final Closes gh-45810 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3a238b593144..44deeae365f2 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1565,7 +1565,7 @@ bom { releaseNotes("https://github.com/neo4j/neo4j-java-driver/releases/tag/{version}") } } - library("Netty", "4.1.121.Final") { + library("Netty", "4.1.122.Final") { group("io.netty") { bom("netty-bom") } From 6106bdd969c173d2f481cd47a3c18bab25651337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:05:43 +0200 Subject: [PATCH 093/711] Upgrade to Postgresql 42.7.6 Closes gh-45811 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 44deeae365f2..691a088c73c7 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1683,7 +1683,7 @@ bom { javadoc("https://javadoc.io/doc/org.messaginghub/pooled-jms/{version}", "org.messaginghub.pooled.jms") } } - library("Postgresql", "42.7.5") { + library("Postgresql", "42.7.6") { group("org.postgresql") { modules = [ "postgresql" From e97d67630904fd04f1290c7dfb8eb03c8ee6dbef Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:34 +0200 Subject: [PATCH 094/711] Upgrade to Build Helper Maven Plugin 3.6.1 Closes gh-45812 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 4524f0432601..d9a0f24a7fbc 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -119,7 +119,7 @@ bom { releaseNotes("https://github.com/openzipkin/brave/releases/tag/{version}") } } - library("Build Helper Maven Plugin", "3.6.0") { + library("Build Helper Maven Plugin", "3.6.1") { group("org.codehaus.mojo") { plugins = [ "build-helper-maven-plugin" From 26fa5cb0eee2d508b50566abbb3d10dbb2a5e3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:38 +0200 Subject: [PATCH 095/711] Upgrade to Git Commit ID Maven Plugin 9.0.2 Closes gh-45813 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index d9a0f24a7fbc..60bad3c027d3 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -400,7 +400,7 @@ bom { .formatted(version.toString("_"))) } } - library("Git Commit ID Maven Plugin", "9.0.1") { + library("Git Commit ID Maven Plugin", "9.0.2") { group("io.github.git-commit-id") { plugins = [ "git-commit-id-maven-plugin" From 41d3e4ab2cfd4de10518d144b138913c0a157558 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:42 +0200 Subject: [PATCH 096/711] Upgrade to Groovy 4.0.27 Closes gh-45814 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 60bad3c027d3..c271d4afa289 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -459,7 +459,7 @@ bom { releaseNotes("https://github.com/graphql-java/graphql-java/releases/tag/v{version}") } } - library("Groovy", "4.0.26") { + library("Groovy", "4.0.27") { group("org.apache.groovy") { bom("groovy-bom") } From 37e71e223dfdd76b2ec5163933aae2396218f7cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:45 +0200 Subject: [PATCH 097/711] Upgrade to Hibernate 6.6.17.Final Closes gh-45815 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c271d4afa289..a6b0c5010166 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -516,7 +516,7 @@ bom { releaseNotes("https://github.com/hazelcast/hazelcast/releases/tag/v{version}") } } - library("Hibernate", "6.6.15.Final") { + library("Hibernate", "6.6.17.Final") { group("org.hibernate.orm") { modules = [ "hibernate-agroal", From 70649ca011a84dd1cab25a4723728fc12804c0b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:49 +0200 Subject: [PATCH 098/711] Upgrade to Infinispan 15.0.15.Final Closes gh-45816 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a6b0c5010166..2aab93924abd 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -626,7 +626,7 @@ bom { ] } } - library("Infinispan", "15.0.14.Final") { + library("Infinispan", "15.0.15.Final") { group("org.infinispan") { bom("infinispan-bom") } From d5e7da00d641d407b342501af7ad6a59d5a29fbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:53 +0200 Subject: [PATCH 099/711] Upgrade to Jaybird 5.0.8.java11 Closes gh-45817 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 2aab93924abd..707549261f9f 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -920,7 +920,7 @@ bom { releaseNotes("https://github.com/jaxen-xpath/jaxen/releases/tag/v{version}") } } - library("Jaybird", "5.0.7.java11") { + library("Jaybird", "5.0.8.java11") { prohibit { endsWith ".java8" because "we use the .java11 version" From 3d4fe73b48d2f0347fbb3fc1b55d07509ecc9223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:17:57 +0200 Subject: [PATCH 100/711] Upgrade to Jetty Reactive HTTPClient 4.0.10 Closes gh-45818 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 707549261f9f..9bb59c9029f7 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -983,7 +983,7 @@ bom { releaseNotes("https://github.com/eclipse-ee4j/jersey/releases/tag/{version}") } } - library("Jetty Reactive HTTPClient", "4.0.9") { + library("Jetty Reactive HTTPClient", "4.0.10") { group("org.eclipse.jetty") { modules = [ "jetty-reactive-httpclient" From eb05f0f9f6abd1e4be80d2569c0b06188001f404 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:01 +0200 Subject: [PATCH 101/711] Upgrade to Jetty 12.0.22 Closes gh-45819 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 9bb59c9029f7..97cd52a2c135 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -990,7 +990,7 @@ bom { ] } } - library("Jetty", "12.0.21") { + library("Jetty", "12.0.22") { group("org.eclipse.jetty.ee10") { bom("jetty-ee10-bom") } From 191a7eccffc65766d5bc8700a00add75b6548d5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:05 +0200 Subject: [PATCH 102/711] Upgrade to Netty 4.1.122.Final Closes gh-45820 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 97cd52a2c135..4090bda62443 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1580,7 +1580,7 @@ bom { releaseNotes("https://github.com/neo4j/neo4j-java-driver/releases/tag/{version}") } } - library("Netty", "4.1.121.Final") { + library("Netty", "4.1.122.Final") { group("io.netty") { bom("netty-bom") } From 1210ed84debd9cd98a51eac4a9162b7bbfc4e37d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:09 +0200 Subject: [PATCH 103/711] Upgrade to Postgresql 42.7.6 Closes gh-45821 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 4090bda62443..a33fa8cfe77d 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1662,7 +1662,7 @@ bom { javadoc("https://javadoc.io/doc/org.messaginghub/pooled-jms/{version}", "org.messaginghub.pooled.jms") } } - library("Postgresql", "42.7.5") { + library("Postgresql", "42.7.6") { group("org.postgresql") { modules = [ "postgresql" From ab821ac25bebda66c9f83a63713968ca686bc027 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:13 +0200 Subject: [PATCH 104/711] Upgrade to Prometheus Client 1.3.8 Closes gh-45822 --- spring-boot-project/spring-boot-dependencies/build.gradle | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index a33fa8cfe77d..c465cbc613ac 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1674,11 +1674,7 @@ bom { releaseNotes("https://github.com/pgjdbc/pgjdbc/releases/tag/REL{version}") } } - library("Prometheus Client", "1.3.6") { - prohibit { - versionRange "[1.3.7]" - because "its bom has dependency management for JUnit (https://github.com/prometheus/client_java/issues/1352)" - } + library("Prometheus Client", "1.3.8") { group("io.prometheus") { bom("prometheus-metrics-bom") } From 2070a712ba7a897b5d0c82e2b592b27ab760fbf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:18 +0200 Subject: [PATCH 105/711] Upgrade to Pulsar 3.3.7 Closes gh-45823 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c465cbc613ac..c6135afcc8fd 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1694,7 +1694,7 @@ bom { releaseNotes("https://github.com/prometheus/client_java/releases/tag/parent-{version}") } } - library("Pulsar", "3.3.6") { + library("Pulsar", "3.3.7") { group("org.apache.pulsar") { bom("pulsar-bom") { permit("org.apache.maven.plugin-tools:maven-plugin-annotations") From e8d9b54a72d7abde99ad9664e925364831b3e144 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:22 +0200 Subject: [PATCH 106/711] Upgrade to REST Assured 5.5.5 Closes gh-45824 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index c6135afcc8fd..fcf703b2c50b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1879,7 +1879,7 @@ bom { releaseNotes("https://github.com/reactor/reactor/releases/tag/{version}") } } - library("REST Assured", "5.5.2") { + library("REST Assured", "5.5.5") { group("io.rest-assured") { bom("rest-assured-bom") } From ede90e9e654172436f6f23634e5672e03ffa95c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:18:25 +0200 Subject: [PATCH 107/711] Upgrade to XmlUnit2 2.10.2 Closes gh-45825 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index fcf703b2c50b..5e9c5109dbad 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2496,7 +2496,7 @@ bom { releaseNotes("https://github.com/mojohaus/xml-maven-plugin/releases/tag/{version}") } } - library("XmlUnit2", "2.10.1") { + library("XmlUnit2", "2.10.2") { group("org.xmlunit") { modules = [ "xmlunit-assertj", From 5ed967a07a0fb2d9410f6a8e948095e470e6d366 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:42:46 +0200 Subject: [PATCH 108/711] Upgrade to Zipkin Reporter 3.5.1 Closes gh-45826 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 2b871a01605f..22e1b485cd44 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -108,7 +108,7 @@ bom { .formatted(version.major(), version.minor())) } } - library("Zipkin Reporter", "3.5.0") { + library("Zipkin Reporter", "3.5.1") { group("io.zipkin.reporter2") { bom("zipkin-reporter-bom") } From 6c56a425d3ab65d4f6fa028ce29b7279e62f7ad6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:42:50 +0200 Subject: [PATCH 109/711] Upgrade to Build Helper Maven Plugin 3.6.1 Closes gh-45827 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 22e1b485cd44..b4e2636db908 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -126,7 +126,7 @@ bom { releaseNotes("https://github.com/openzipkin/brave/releases/tag/{version}") } } - library("Build Helper Maven Plugin", "3.6.0") { + library("Build Helper Maven Plugin", "3.6.1") { group("org.codehaus.mojo") { plugins = [ "build-helper-maven-plugin" From 99da7165a519b225b998d0f6d02e57a2820443ed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:42:54 +0200 Subject: [PATCH 110/711] Upgrade to Git Commit ID Maven Plugin 9.0.2 Closes gh-45828 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index b4e2636db908..3dcffabefa92 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -418,7 +418,7 @@ bom { .formatted(version.toString("_"))) } } - library("Git Commit ID Maven Plugin", "9.0.1") { + library("Git Commit ID Maven Plugin", "9.0.2") { group("io.github.git-commit-id") { plugins = [ "git-commit-id-maven-plugin" From 7cf052226458052a958774d94548bda40e89dc94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:42:58 +0200 Subject: [PATCH 111/711] Upgrade to Groovy 4.0.27 Closes gh-45829 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3dcffabefa92..225b9d52a73f 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -477,7 +477,7 @@ bom { releaseNotes("https://github.com/graphql-java/graphql-java/releases/tag/v{version}") } } - library("Groovy", "4.0.26") { + library("Groovy", "4.0.27") { prohibit { contains "-alpha-" because "we don't want alpha dependencies" From 85fa9b62efdef101afef4fe2cf60f2e9266a9a37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:02 +0200 Subject: [PATCH 112/711] Upgrade to Hibernate 6.6.17.Final Closes gh-45830 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 225b9d52a73f..102130618088 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -538,7 +538,7 @@ bom { releaseNotes("https://github.com/hazelcast/hazelcast/releases/tag/v{version}") } } - library("Hibernate", "6.6.15.Final") { + library("Hibernate", "6.6.17.Final") { prohibit { versionRange "[7.0.0.Alpha1,)" because "it exceeds our Jakarta EE 10 baseline" From d02c14dee9aab956c634521ad815de1858bff294 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:06 +0200 Subject: [PATCH 113/711] Upgrade to Infinispan 15.2.2.Final Closes gh-45831 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 102130618088..f1183d42e8a4 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -668,7 +668,7 @@ bom { ] } } - library("Infinispan", "15.2.1.Final") { + library("Infinispan", "15.2.2.Final") { group("org.infinispan") { bom("infinispan-bom") } From 9de24a4a3a71aefaa4fd6954f2e39e0f6b8dd6e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:09 +0200 Subject: [PATCH 114/711] Upgrade to Jaybird 6.0.2 Closes gh-45832 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f1183d42e8a4..3fffc4b8923a 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -977,7 +977,7 @@ bom { releaseNotes("https://github.com/jaxen-xpath/jaxen/releases/tag/v{version}") } } - library("Jaybird", "6.0.1") { + library("Jaybird", "6.0.2") { prohibit { endsWith ".java8" because "we use the .java11 version" From d7f33e3565ff37190019ef9b9a99bcbb343e3c85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:13 +0200 Subject: [PATCH 115/711] Upgrade to Jetty Reactive HTTPClient 4.0.10 Closes gh-45833 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3fffc4b8923a..ce33da07c7d6 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1044,7 +1044,7 @@ bom { releaseNotes("https://github.com/eclipse-ee4j/jersey/releases/tag/{version}") } } - library("Jetty Reactive HTTPClient", "4.0.9") { + library("Jetty Reactive HTTPClient", "4.0.10") { group("org.eclipse.jetty") { modules = [ "jetty-reactive-httpclient" From 8b16831004228f979c83ada48addbaccc2353c4b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:17 +0200 Subject: [PATCH 116/711] Upgrade to Jetty 12.0.22 Closes gh-45834 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index ce33da07c7d6..febb27fb00d4 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1051,7 +1051,7 @@ bom { ] } } - library("Jetty", "12.0.21") { + library("Jetty", "12.0.22") { prohibit { contains ".alpha" because "we don't want alpha dependencies" From 6299e366a5f4b3a6acdba8b8e045a266fe8af35e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:21 +0200 Subject: [PATCH 117/711] Upgrade to Netty 4.1.122.Final Closes gh-45835 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index febb27fb00d4..38c3f950919b 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1690,7 +1690,7 @@ bom { releaseNotes("https://github.com/neo4j/neo4j-java-driver/releases/tag/{version}") } } - library("Netty", "4.1.121.Final") { + library("Netty", "4.1.122.Final") { prohibit { contains ".Alpha" contains ".Beta" From 95755d71c4d47bd910e1a34b743480ce4f647666 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:25 +0200 Subject: [PATCH 118/711] Upgrade to Postgresql 42.7.6 Closes gh-45836 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 38c3f950919b..f1274c27a8d3 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1785,7 +1785,7 @@ bom { javadoc("https://javadoc.io/doc/org.messaginghub/pooled-jms/{version}", "org.messaginghub.pooled.jms") } } - library("Postgresql", "42.7.5") { + library("Postgresql", "42.7.6") { group("org.postgresql") { modules = [ "postgresql" From 63d1a0c97a4b4850aef5c97328dec7edbc72a157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:29 +0200 Subject: [PATCH 119/711] Upgrade to Prometheus Client 1.3.8 Closes gh-45837 --- spring-boot-project/spring-boot-dependencies/build.gradle | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index f1274c27a8d3..58a02f7b23d5 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1797,11 +1797,7 @@ bom { releaseNotes("https://github.com/pgjdbc/pgjdbc/releases/tag/REL{version}") } } - library("Prometheus Client", "1.3.6") { - prohibit { - versionRange "[1.3.7]" - because "its bom has dependency management for JUnit (https://github.com/prometheus/client_java/issues/1352)" - } + library("Prometheus Client", "1.3.8") { group("io.prometheus") { bom("prometheus-metrics-bom") } From 78df00a0cad8d3f402e6d079f876238a6e9f3419 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:33 +0200 Subject: [PATCH 120/711] Upgrade to Pulsar 4.0.5 Closes gh-45838 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 58a02f7b23d5..d8bd11bf6e75 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1817,7 +1817,7 @@ bom { releaseNotes("https://github.com/prometheus/client_java/releases/tag/parent-{version}") } } - library("Pulsar", "4.0.4") { + library("Pulsar", "4.0.5") { group("org.apache.pulsar") { bom("pulsar-bom") { permit("org.apache.maven.plugin-tools:maven-plugin-annotations") From af4a78776b9efb9e35b12028d92081bb461ba26e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:37 +0200 Subject: [PATCH 121/711] Upgrade to REST Assured 5.5.5 Closes gh-45839 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index d8bd11bf6e75..3e780592aded 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1997,7 +1997,7 @@ bom { releaseNotes("https://github.com/reactor/reactor/releases/tag/{version}") } } - library("REST Assured", "5.5.2") { + library("REST Assured", "5.5.5") { group("io.rest-assured") { bom("rest-assured-bom") } From 90b0a51bb088a22097b07028976734dbdd4fdfed Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:41 +0200 Subject: [PATCH 122/711] Upgrade to Testcontainers 1.21.1 Closes gh-45840 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 3e780592aded..04526080f009 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2471,7 +2471,7 @@ bom { releaseNotes("https://github.com/xerial/sqlite-jdbc/releases/tag/{version}") } } - library("Testcontainers", "1.21.0") { + library("Testcontainers", "1.21.1") { group("org.testcontainers") { bom("testcontainers-bom") } From edb25fed30c594462361880258e6ec6571ddf75e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Fri, 6 Jun 2025 11:43:44 +0200 Subject: [PATCH 123/711] Upgrade to XmlUnit2 2.10.2 Closes gh-45841 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 04526080f009..8024c7f08400 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -2650,7 +2650,7 @@ bom { releaseNotes("https://github.com/mojohaus/xml-maven-plugin/releases/tag/{version}") } } - library("XmlUnit2", "2.10.1") { + library("XmlUnit2", "2.10.2") { group("org.xmlunit") { modules = [ "xmlunit-assertj", From 564b65bc789a34f027ee2465b8fe3b16486b0105 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 9 Jun 2025 10:45:52 +0100 Subject: [PATCH 124/711] Permit write and delete operations on Cloud Foundry with Spring Security Update `CloudFoundryActuatorAutoConfiguration` so that CSRF protection is ignored for Cloud Foundry endpoint requests. This aligns with the behavior of Spring Boot 3.4 where `ignoring()` was used for security configuration. With the migration to `permitAll()` we now need additional CSRF configuration. Fixes gh-45848 --- ...CloudFoundryActuatorAutoConfiguration.java | 1 + ...FoundryActuatorAutoConfigurationTests.java | 29 +++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java index fc9bbf7ee746..4a6bc50c6ef0 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfiguration.java @@ -174,6 +174,7 @@ public static class IgnoredCloudFoundryPathsWebSecurityConfiguration { SecurityFilterChain cloudFoundrySecurityFilterChain(HttpSecurity http, CloudFoundryWebEndpointServletHandlerMapping handlerMapping) throws Exception { RequestMatcher cloudFoundryRequest = getRequestMatcher(handlerMapping); + http.csrf((csrf) -> csrf.ignoringRequestMatchers(cloudFoundryRequest)); http.securityMatchers((matches) -> matches.requestMatchers(cloudFoundryRequest)) .authorizeHttpRequests((authorize) -> authorize.anyRequest().permitAll()); return http.build(); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java index 90c0c43998cf..aa9d5d8d009d 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/cloudfoundry/servlet/CloudFoundryActuatorAutoConfigurationTests.java @@ -33,6 +33,7 @@ import org.springframework.boot.actuate.endpoint.EndpointId; import org.springframework.boot.actuate.endpoint.annotation.Endpoint; import org.springframework.boot.actuate.endpoint.annotation.ReadOperation; +import org.springframework.boot.actuate.endpoint.annotation.WriteOperation; import org.springframework.boot.actuate.endpoint.web.EndpointMapping; import org.springframework.boot.actuate.endpoint.web.ExposableWebEndpoint; import org.springframework.boot.actuate.endpoint.web.WebOperation; @@ -49,17 +50,24 @@ import org.springframework.boot.test.context.runner.WebApplicationContextRunner; import org.springframework.context.ApplicationContext; import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.security.config.BeanIds; import org.springframework.security.web.FilterChainProxy; import org.springframework.security.web.SecurityFilterChain; import org.springframework.test.util.ReflectionTestUtils; +import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.assertj.MockMvcTester; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.client.RestTemplate; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.filter.CompositeFilter; import static org.assertj.core.api.Assertions.assertThat; +import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** * Tests for {@link CloudFoundryActuatorAutoConfiguration}. @@ -170,7 +178,7 @@ void cloudFoundryPlatformActiveAndCloudControllerUrlNotPresent() { } @Test - void cloudFoundryPathsIgnoredBySpringSecurity() { + void cloudFoundryPathsPermittedBySpringSecurity() { this.contextRunner.withBean(TestEndpoint.class, TestEndpoint::new) .withPropertyValues("VCAP_APPLICATION:---", "vcap.application.application_id:my-app-id") .run((context) -> { @@ -189,6 +197,19 @@ void cloudFoundryPathsIgnoredBySpringSecurity() { }); } + @Test + void cloudFoundryPathsPermittedWithCsrfBySpringSecurity() { + this.contextRunner.withBean(TestEndpoint.class, TestEndpoint::new) + .withPropertyValues("VCAP_APPLICATION:---", "vcap.application.application_id:my-app-id") + .run((context) -> { + MockMvc mvc = MockMvcBuilders.webAppContextSetup(context).apply(springSecurity()).build(); + mvc.perform(post(BASE_PATH + "/test?name=test").contentType(MediaType.APPLICATION_JSON) + .with(csrf().useInvalidToken())).andExpect(status().isServiceUnavailable()); + // If CSRF fails we'll get a 403, if it works we get service unavailable + // because of "Cloud controller URL is not available" + }); + } + private SecurityFilterChain getSecurityFilterChain(AssertableWebApplicationContext context) { Filter springSecurityFilterChain = context.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN, Filter.class); FilterChainProxy filterChainProxy = getFilterChainProxy(springSecurityFilterChain); @@ -258,7 +279,7 @@ void endpointPathCustomizationIsNotApplied() { .findFirst() .get(); Collection operations = endpoint.getOperations(); - assertThat(operations).hasSize(1); + assertThat(operations).hasSize(2); assertThat(operations.iterator().next().getRequestPredicate().getPath()).isEqualTo("test"); }); } @@ -307,6 +328,10 @@ String hello() { return "hello world"; } + @WriteOperation + void update(String name) { + } + } } From abc0077140a666621c61c97aa3ad3529dd4b6286 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 9 Jun 2025 16:21:28 +0100 Subject: [PATCH 125/711] Remove redundant test Support for Zipkin export using a RestTemplate- or WebClient-based sender was deprecated in 3.3 and then removed in 3.5. This made redundant the tests that checked there was no cycle when using RestTemplate or WebClient. Closes gh-45847 --- ...pkinAutoConfigurationIntegrationTests.java | 68 ------------------- 1 file changed, 68 deletions(-) delete mode 100644 spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfigurationIntegrationTests.java diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfigurationIntegrationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfigurationIntegrationTests.java deleted file mode 100644 index 14b92a967bd5..000000000000 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/tracing/zipkin/ZipkinAutoConfigurationIntegrationTests.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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.actuate.autoconfigure.tracing.zipkin; - -import org.junit.jupiter.api.Test; - -import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.observation.ObservationAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.observation.web.client.HttpClientObservationsAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.tracing.BraveAutoConfiguration; -import org.springframework.boot.actuate.autoconfigure.tracing.MicrometerTracingAutoConfiguration; -import org.springframework.boot.autoconfigure.AutoConfigurations; -import org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration; -import org.springframework.boot.autoconfigure.web.reactive.function.client.WebClientAutoConfiguration; -import org.springframework.boot.test.context.assertj.ApplicationContextAssertProvider; -import org.springframework.boot.test.context.runner.AbstractApplicationContextRunner; -import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; -import org.springframework.boot.test.context.runner.WebApplicationContextRunner; -import org.springframework.context.ConfigurableApplicationContext; - -import static org.assertj.core.api.Assertions.assertThat; - -/** - * Integration tests for {@link ZipkinAutoConfiguration} and other related - * auto-configurations. - * - * @author Andy Wilkinson - */ -class ZipkinAutoConfigurationIntegrationTests { - - @Test - void zipkinsUseOfRestTemplateDoesNotCauseACycle() { - configure(new WebApplicationContextRunner()) - .withConfiguration(AutoConfigurations.of(RestTemplateAutoConfiguration.class)) - .run((context) -> assertThat(context).hasNotFailed()); - } - - @Test - void zipkinsUseOfWebClientDoesNotCauseACycle() { - configure(new ReactiveWebApplicationContextRunner()) - .withConfiguration(AutoConfigurations.of(WebClientAutoConfiguration.class)) - .run((context) -> assertThat(context).hasNotFailed()); - } - - , C extends ConfigurableApplicationContext, A extends ApplicationContextAssertProvider> AbstractApplicationContextRunner configure( - AbstractApplicationContextRunner runner) { - return runner.withConfiguration(AutoConfigurations.of(MicrometerTracingAutoConfiguration.class, - ObservationAutoConfiguration.class, BraveAutoConfiguration.class, ZipkinAutoConfiguration.class, - HttpClientObservationsAutoConfiguration.class, MetricsAutoConfiguration.class, - SimpleMetricsExportAutoConfiguration.class)); - } - -} From 8fa7843d71da1cf0af7a81dbf222b9fbb424d29a Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 9 Jun 2025 16:24:11 +0100 Subject: [PATCH 126/711] Remove dependency management for Micrometer Context Propagation It's now managed as part of Micrometer's bom so we no longer need to manage it separately (and our separate management was being overriden by Micrometer's bom anyway). Closes gh-45852 --- spring-boot-project/spring-boot-parent/build.gradle | 7 ------- 1 file changed, 7 deletions(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 5e92d90e0689..7a597adec56a 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -137,13 +137,6 @@ bom { ] } } - library("Micrometer Context Propagation", "1.0.5") { - group("io.micrometer") { - modules = [ - "context-propagation" - ] - } - } library("MockK", "1.13.5") { group("io.mockk") { modules = [ From f12d96886a5f4dac5db7786b6318d31c689fa1f8 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 9 Jun 2025 17:33:50 +0100 Subject: [PATCH 127/711] Test SpringIterableConfigurationPropertySource support lower case names Add a test to ensure that `SpringIterableConfigurationPropertySource` can support lower case names. See gh-45741 --- ...rableConfigurationPropertySourceTests.java | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySourceTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySourceTests.java index 30c97f02e7ff..03c3ac35cfa9 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySourceTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SpringIterableConfigurationPropertySourceTests.java @@ -152,10 +152,12 @@ void containsDescendantOfShouldCheckSourceNames() { } @Test - void containsDescendantOfWhenSystemEnvironmentPropertySourceShouldLegacyProperty() { + void containsDescendantOfWhenSystemEnvironmentPropertySourceShouldSupportLegacyProperty() { Map source = new LinkedHashMap<>(); source.put("FOO_BAR_BAZ_BONG", "bing"); source.put("FOO_ALPHABRAVO_GAMMA", "delta"); + source.put("loo_bar_baz_bong", "bing"); + source.put("loo_alphabravo_gamma", "delta"); SystemEnvironmentPropertySource propertySource = new SystemEnvironmentPropertySource( StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME, source); SpringIterableConfigurationPropertySource adapter = new SpringIterableConfigurationPropertySource( @@ -166,6 +168,27 @@ void containsDescendantOfWhenSystemEnvironmentPropertySourceShouldLegacyProperty .isEqualTo(ConfigurationPropertyState.PRESENT); assertThat(adapter.containsDescendantOf(ConfigurationPropertyName.of("foo.blah"))) .isEqualTo(ConfigurationPropertyState.ABSENT); + assertThat(adapter.containsDescendantOf(ConfigurationPropertyName.of("loo.bar-baz"))) + .isEqualTo(ConfigurationPropertyState.PRESENT); + assertThat(adapter.containsDescendantOf(ConfigurationPropertyName.of("loo.alpha-bravo"))) + .isEqualTo(ConfigurationPropertyState.PRESENT); + assertThat(adapter.containsDescendantOf(ConfigurationPropertyName.of("loo.blah"))) + .isEqualTo(ConfigurationPropertyState.ABSENT); + } + + @Test + void getConfigurationPropertyWhenSystemEnvironmentPropertySourceShouldSupportLegacyProperty() { + Map source = new LinkedHashMap<>(); + source.put("TEST_VALUE_UPPER", "upper"); + source.put("test_value_lower", "lower"); + SystemEnvironmentPropertySource propertySource = new SystemEnvironmentPropertySource( + StandardEnvironment.SYSTEM_ENVIRONMENT_PROPERTY_SOURCE_NAME, source); + SpringIterableConfigurationPropertySource adapter = new SpringIterableConfigurationPropertySource( + propertySource, SystemEnvironmentPropertyMapper.INSTANCE, DefaultPropertyMapper.INSTANCE); + assertThat(adapter.getConfigurationProperty(ConfigurationPropertyName.of("test.value-upper")).getValue()) + .isEqualTo("upper"); + assertThat(adapter.getConfigurationProperty(ConfigurationPropertyName.of("test.value-lower")).getValue()) + .isEqualTo("lower"); } @Test From bb13eaa83799fb071c6e12c83680bba01895f5b5 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 9 Jun 2025 17:51:17 +0100 Subject: [PATCH 128/711] Support lower case configuration properties system environment names Update `SystemEnvironmentPropertyMapper` to generate both mappings in both the original case and upper case. This restores the behavior of Spring Boot 3.4 where the system environment could contain lowercase names. Fixes gh-45741 --- .../source/ConfigurationPropertyName.java | 13 ++++++------- .../source/SpringConfigurationPropertySource.java | 4 +++- .../source/SystemEnvironmentPropertyMapper.java | 12 ++++-------- 3 files changed, 13 insertions(+), 16 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java index 87d237bc2368..1604d4b364eb 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/ConfigurationPropertyName.java @@ -543,25 +543,24 @@ ConfigurationPropertyName asSystemEnvironmentLegacyName() { @Override public String toString() { - return toString(ToStringFormat.DEFAULT); + return toString(ToStringFormat.DEFAULT, false); } - String toString(ToStringFormat format) { + String toString(ToStringFormat format, boolean upperCase) { String string = this.string[format.ordinal()]; if (string == null) { string = buildToString(format); this.string[format.ordinal()] = string; } - return string; + return (!upperCase) ? string : string.toUpperCase(Locale.ENGLISH); } private String buildToString(ToStringFormat format) { return switch (format) { case DEFAULT -> buildDefaultToString(); - case SYSTEM_ENVIRONMENT -> - buildSimpleToString('_', (i) -> getElement(i, Form.UNIFORM).toUpperCase(Locale.ENGLISH)); - case LEGACY_SYSTEM_ENVIRONMENT -> buildSimpleToString('_', - (i) -> getElement(i, Form.ORIGINAL).replace('-', '_').toUpperCase(Locale.ENGLISH)); + case SYSTEM_ENVIRONMENT -> buildSimpleToString('_', (i) -> getElement(i, Form.UNIFORM)); + case LEGACY_SYSTEM_ENVIRONMENT -> + buildSimpleToString('_', (i) -> getElement(i, Form.ORIGINAL).replace('-', '_')); }; } diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java index 7065a72a9597..3cdd55eeef39 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SpringConfigurationPropertySource.java @@ -16,6 +16,7 @@ package org.springframework.boot.context.properties.source; +import java.util.Locale; import java.util.Map; import java.util.Random; @@ -109,7 +110,8 @@ protected final Object getPropertySourceProperty(String name) { } Object getSystemEnvironmentProperty(Map systemEnvironment, String name) { - return systemEnvironment.get(name); + Object value = systemEnvironment.get(name); + return (value != null) ? value : systemEnvironment.get(name.toLowerCase(Locale.ROOT)); } @Override diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java index 2a74e2130743..b2e301dd59f6 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java @@ -16,8 +16,6 @@ package org.springframework.boot.context.properties.source; -import java.util.Arrays; -import java.util.Collections; import java.util.List; import java.util.Locale; import java.util.function.BiPredicate; @@ -42,12 +40,10 @@ final class SystemEnvironmentPropertyMapper implements PropertyMapper { @Override public List map(ConfigurationPropertyName configurationPropertyName) { - String name = configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT); - String legacyName = configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT); - if (name.equals(legacyName)) { - return Collections.singletonList(name); - } - return Arrays.asList(name, legacyName); + return List.of(configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, true), + configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, true), + configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, false), + configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, false)); } @Override From 4301186a95ff06ea9c33e39087563b77f2b2f00a Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Mon, 9 Jun 2025 17:53:48 -0700 Subject: [PATCH 129/711] Fix SystemEnvironmentPropertyMapper tests and remove duplicate names See gh-45741 --- There | 0 .../source/SystemEnvironmentPropertyMapper.java | 17 +++++++++++++---- .../SystemEnvironmentPropertyMapperTests.java | 15 ++++++++------- 3 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 There diff --git a/There b/There new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java index b2e301dd59f6..a840ae5de5b4 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapper.java @@ -16,6 +16,7 @@ package org.springframework.boot.context.properties.source; +import java.util.ArrayList; import java.util.List; import java.util.Locale; import java.util.function.BiPredicate; @@ -40,10 +41,18 @@ final class SystemEnvironmentPropertyMapper implements PropertyMapper { @Override public List map(ConfigurationPropertyName configurationPropertyName) { - return List.of(configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, true), - configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, true), - configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, false), - configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, false)); + List mapped = new ArrayList<>(4); + addIfMissing(mapped, configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, true)); + addIfMissing(mapped, configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, true)); + addIfMissing(mapped, configurationPropertyName.toString(ToStringFormat.SYSTEM_ENVIRONMENT, false)); + addIfMissing(mapped, configurationPropertyName.toString(ToStringFormat.LEGACY_SYSTEM_ENVIRONMENT, false)); + return mapped; + } + + private void addIfMissing(List list, String value) { + if (!list.contains(value)) { + list.add(value); + } } @Override diff --git a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapperTests.java b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapperTests.java index 74902fe68531..ab8fdfe0c1c2 100644 --- a/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapperTests.java +++ b/spring-boot-project/spring-boot/src/test/java/org/springframework/boot/context/properties/source/SystemEnvironmentPropertyMapperTests.java @@ -48,13 +48,14 @@ void mapFromStringShouldReturnBestGuess() { @Test void mapFromConfigurationShouldReturnBestGuess() { - assertThat(mapConfigurationPropertyName("server")).containsExactly("SERVER"); - assertThat(mapConfigurationPropertyName("server.port")).containsExactly("SERVER_PORT"); - assertThat(mapConfigurationPropertyName("host[0]")).containsExactly("HOST_0"); - assertThat(mapConfigurationPropertyName("host[0][1]")).containsExactly("HOST_0_1"); - assertThat(mapConfigurationPropertyName("host[0].name")).containsExactly("HOST_0_NAME"); - assertThat(mapConfigurationPropertyName("host.f00.name")).containsExactly("HOST_F00_NAME"); - assertThat(mapConfigurationPropertyName("foo.the-bar")).containsExactly("FOO_THEBAR", "FOO_THE_BAR"); + assertThat(mapConfigurationPropertyName("server")).containsExactly("SERVER", "server"); + assertThat(mapConfigurationPropertyName("server.port")).containsExactly("SERVER_PORT", "server_port"); + assertThat(mapConfigurationPropertyName("host[0]")).containsExactly("HOST_0", "host_0"); + assertThat(mapConfigurationPropertyName("host[0][1]")).containsExactly("HOST_0_1", "host_0_1"); + assertThat(mapConfigurationPropertyName("host[0].name")).containsExactly("HOST_0_NAME", "host_0_name"); + assertThat(mapConfigurationPropertyName("host.f00.name")).containsExactly("HOST_F00_NAME", "host_f00_name"); + assertThat(mapConfigurationPropertyName("foo.the-bar")).containsExactly("FOO_THEBAR", "FOO_THE_BAR", + "foo_thebar", "foo_the_bar"); } @Test From c2528b1bfda85c133dd2b8a4cb626aac3b44e8a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 07:04:35 +0200 Subject: [PATCH 130/711] Upgrade to Micrometer 1.13.15 Closes gh-45749 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 691a088c73c7..4818f0547a1f 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1421,7 +1421,7 @@ bom { releaseNotes("https://github.com/apache/maven-war-plugin/releases/tag/maven-war-plugin-{version}") } } - library("Micrometer", "1.13.15-SNAPSHOT") { + library("Micrometer", "1.13.15") { considerSnapshots() group("io.micrometer") { modules = [ From aa2a547602c5693518a275ca90ff0801c11cba77 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 07:04:35 +0200 Subject: [PATCH 131/711] Upgrade to Micrometer Tracing 1.3.13 Closes gh-45750 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 4818f0547a1f..d8227d3a7ba2 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1443,7 +1443,7 @@ bom { releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}") } } - library("Micrometer Tracing", "1.3.13-SNAPSHOT") { + library("Micrometer Tracing", "1.3.13") { considerSnapshots() group("io.micrometer") { bom("micrometer-tracing-bom") From 3564b359b9267128cbd154143c127cbf77f27f4d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 07:04:40 +0200 Subject: [PATCH 132/711] Upgrade to Micrometer 1.14.8 Closes gh-45763 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 5e9c5109dbad..86f044e8c90e 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1440,7 +1440,7 @@ bom { releaseNotes("https://github.com/apache/maven-war-plugin/releases/tag/maven-war-plugin-{version}") } } - library("Micrometer", "1.14.8-SNAPSHOT") { + library("Micrometer", "1.14.8") { considerSnapshots() group("io.micrometer") { modules = [ From c4d4615f6d65a6f1252b5f3ccf761bcf81f61b5f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 07:04:40 +0200 Subject: [PATCH 133/711] Upgrade to Micrometer Tracing 1.4.7 Closes gh-45764 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 86f044e8c90e..9c24f762aceb 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1462,7 +1462,7 @@ bom { releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}") } } - library("Micrometer Tracing", "1.4.7-SNAPSHOT") { + library("Micrometer Tracing", "1.4.7") { considerSnapshots() group("io.micrometer") { bom("micrometer-tracing-bom") From 3f7be2f4e6e14b4ba92799f28c840b4e61dc7a9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 07:04:58 +0200 Subject: [PATCH 134/711] Upgrade to Micrometer 1.15.1 Closes gh-45776 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 8024c7f08400..4185df9653cc 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1558,7 +1558,7 @@ bom { releaseNotes("https://github.com/apache/maven-war-plugin/releases/tag/maven-war-plugin-{version}") } } - library("Micrometer", "1.15.1-SNAPSHOT") { + library("Micrometer", "1.15.1") { considerSnapshots() group("io.micrometer") { modules = [ From 7378a613b105c062f3d3fbb19673dd08dd17cca5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 07:04:58 +0200 Subject: [PATCH 135/711] Upgrade to Micrometer Tracing 1.5.1 Closes gh-45777 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 4185df9653cc..2b6a50fbf909 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1580,7 +1580,7 @@ bom { releaseNotes("https://github.com/micrometer-metrics/micrometer/releases/tag/v{version}") } } - library("Micrometer Tracing", "1.5.1-SNAPSHOT") { + library("Micrometer Tracing", "1.5.1") { considerSnapshots() group("io.micrometer") { bom("micrometer-tracing-bom") From 515abc4221145aa2d89cc745890fce9d3f57f5c6 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 9 Jun 2025 18:17:00 +0100 Subject: [PATCH 136/711] Include all auto-config modules in auto-config classes appendix Closes gh-45861 --- .../DocumentAutoConfigurationClasses.java | 53 +++++++++++++++++-- .../spring-boot-docs/build.gradle | 5 ++ .../antora/modules/ROOT/pages/redirect.adoc | 8 +-- .../auto-configuration-classes/actuator.adoc | 6 --- .../auto-configuration-classes/core.adoc | 6 --- .../appendix/partials/nav-appendix.adoc | 4 +- 6 files changed, 61 insertions(+), 21 deletions(-) delete mode 100644 spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/actuator.adoc delete mode 100644 spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/core.adoc diff --git a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java index f76682282e1d..5c1fd4debbf9 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/autoconfigure/DocumentAutoConfigurationClasses.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. @@ -22,6 +22,8 @@ import java.io.IOException; import java.io.PrintWriter; import java.io.Reader; +import java.io.UncheckedIOException; +import java.util.List; import java.util.Properties; import java.util.Set; import java.util.SortedSet; @@ -61,6 +63,8 @@ public void setAutoConfiguration(FileCollection autoConfiguration) { @TaskAction void documentAutoConfigurationClasses() throws IOException { + List autoConfigurations = load(); + autoConfigurations.forEach(this::writeModuleAdoc); for (File metadataFile : this.autoConfiguration) { Properties metadata = new Properties(); try (Reader reader = new FileReader(metadataFile)) { @@ -68,15 +72,30 @@ void documentAutoConfigurationClasses() throws IOException { } AutoConfiguration autoConfiguration = new AutoConfiguration(metadata.getProperty("module"), new TreeSet<>( StringUtils.commaDelimitedListToSet(metadata.getProperty("autoConfigurationClassNames")))); - writeTable(autoConfiguration); + writeModuleAdoc(autoConfiguration); } + writeNavAdoc(autoConfigurations); } - private void writeTable(AutoConfiguration autoConfigurationClasses) throws IOException { + private List load() { + return this.autoConfiguration.getFiles() + .stream() + .map(AutoConfiguration::of) + .sorted((a1, a2) -> a1.module.compareTo(a2.module)) + .toList(); + } + + private void writeModuleAdoc(AutoConfiguration autoConfigurationClasses) { File outputDir = getOutputDir().getAsFile().get(); outputDir.mkdirs(); try (PrintWriter writer = new PrintWriter( new FileWriter(new File(outputDir, autoConfigurationClasses.module + ".adoc")))) { + writer.println("[[appendix.auto-configuration-classes.%s]]".formatted(autoConfigurationClasses.module)); + writer.println("= %s".formatted(autoConfigurationClasses.module)); + writer.println(); + writer.println("The following auto-configuration classes are from the `%s` module:" + .formatted(autoConfigurationClasses.module)); + writer.println(); writer.println("[cols=\"4,1\"]"); writer.println("|==="); writer.println("| Configuration Class | Links"); @@ -88,6 +107,22 @@ private void writeTable(AutoConfiguration autoConfigurationClasses) throws IOExc } writer.println("|==="); } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + } + + private void writeNavAdoc(List autoConfigurations) { + File outputDir = getOutputDir().getAsFile().get(); + outputDir.mkdirs(); + try (PrintWriter writer = new PrintWriter(new FileWriter(new File(outputDir, "nav.adoc")))) { + autoConfigurations.forEach((autoConfigurationClasses) -> writer + .println("*** xref:appendix:auto-configuration-classes/%s.adoc[]" + .formatted(autoConfigurationClasses.module))); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } } private static final class AutoConfiguration { @@ -105,6 +140,18 @@ private AutoConfiguration(String module, Set classNames) { }).collect(Collectors.toCollection(TreeSet::new)); } + private static AutoConfiguration of(File metadataFile) { + Properties metadata = new Properties(); + try (Reader reader = new FileReader(metadataFile)) { + metadata.load(reader); + } + catch (IOException ex) { + throw new UncheckedIOException(ex); + } + return new AutoConfiguration(metadata.getProperty("module"), new TreeSet<>( + StringUtils.commaDelimitedListToSet(metadata.getProperty("autoConfigurationClassNames")))); + } + } private static final class AutoConfigurationClass implements Comparable { diff --git a/spring-boot-project/spring-boot-docs/build.gradle b/spring-boot-project/spring-boot-docs/build.gradle index 7f96367302f1..7a02df91f11f 100644 --- a/spring-boot-project/spring-boot-docs/build.gradle +++ b/spring-boot-project/spring-boot-docs/build.gradle @@ -370,6 +370,11 @@ antoraContributions { } from(documentAutoConfigurationClasses) { into "modules/appendix/partials/auto-configuration-classes" + include "nav.adoc" + } + from(documentAutoConfigurationClasses) { + into "modules/appendix/pages/auto-configuration-classes" + exclude "nav.adoc" } from(documentConfigurationProperties) { into "modules/appendix/partials/configuration-properties" diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc index ec4127f1ae33..9765d775acd0 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/ROOT/pages/redirect.adoc @@ -234,10 +234,10 @@ * xref:appendix:application-properties/index.adoc#appendix.application-properties[#common-application-properties] * xref:appendix:application-properties/index.adoc[#application-properties] * xref:appendix:application-properties/index.adoc[application-properties] -* xref:appendix:auto-configuration-classes/actuator.adoc#appendix.auto-configuration-classes.actuator[#appendix.auto-configuration-classes.actuator] -* xref:appendix:auto-configuration-classes/actuator.adoc#appendix.auto-configuration-classes.actuator[#auto-configuration-classes.actuator] -* xref:appendix:auto-configuration-classes/core.adoc#appendix.auto-configuration-classes.core[#appendix.auto-configuration-classes.core] -* xref:appendix:auto-configuration-classes/core.adoc#appendix.auto-configuration-classes.core[#auto-configuration-classes.core] +* xref:appendix:auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-actuator-autoconfigure[#appendix.auto-configuration-classes.actuator] +* xref:appendix:auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-actuator-autoconfigure[#auto-configuration-classes.actuator] +* xref:appendix:auto-configuration-classes/spring-boot-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-autoconfigure[#appendix.auto-configuration-classes.core] +* xref:appendix:auto-configuration-classes/spring-boot-autoconfigure.adoc#appendix.auto-configuration-classes.spring-boot-autoconfigure[#auto-configuration-classes.core] * xref:appendix:auto-configuration-classes/index.adoc#appendix.auto-configuration-classes[#appendix.auto-configuration-classes] * xref:appendix:auto-configuration-classes/index.adoc#appendix.auto-configuration-classes[#auto-configuration-classes] * xref:appendix:auto-configuration-classes/index.adoc[#auto-configuration-classes] diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/actuator.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/actuator.adoc deleted file mode 100644 index 620c7ea6989a..000000000000 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/actuator.adoc +++ /dev/null @@ -1,6 +0,0 @@ -[[appendix.auto-configuration-classes.actuator]] -= spring-boot-actuator-autoconfigure - -The following auto-configuration classes are from the `spring-boot-actuator-autoconfigure` module: - -include::partial$/auto-configuration-classes/spring-boot-actuator-autoconfigure.adoc[] diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/core.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/core.adoc deleted file mode 100644 index 53ec8859ad9f..000000000000 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/pages/auto-configuration-classes/core.adoc +++ /dev/null @@ -1,6 +0,0 @@ -[[appendix.auto-configuration-classes.core]] -= spring-boot-autoconfigure - -The following auto-configuration classes are from the `spring-boot-autoconfigure` module: - -include::partial$/auto-configuration-classes/spring-boot-autoconfigure.adoc[] diff --git a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/partials/nav-appendix.adoc b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/partials/nav-appendix.adoc index 564da76c9c77..2d1c53173d39 100644 --- a/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/partials/nav-appendix.adoc +++ b/spring-boot-project/spring-boot-docs/src/docs/antora/modules/appendix/partials/nav-appendix.adoc @@ -1,9 +1,9 @@ * Appendix ** xref:appendix:application-properties/index.adoc[] + ** xref:appendix:auto-configuration-classes/index.adoc[] -*** xref:appendix:auto-configuration-classes/core.adoc[] -*** xref:appendix:auto-configuration-classes/actuator.adoc[] +include::appendix:partial$auto-configuration-classes/nav.adoc[] ** xref:appendix:test-auto-configuration/index.adoc[] *** xref:appendix:test-auto-configuration/slices.adoc[] From 415c8ce5b023d95fc6ac8f4dacf818460ed5fbb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 10:18:15 +0200 Subject: [PATCH 137/711] Upgrade to Caffeine 3.2.1 Closes gh-45864 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 2b6a50fbf909..8b8f9d4a2ece 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -166,7 +166,7 @@ bom { releaseNotes("https://github.com/cache2k/cache2k/releases/tag/v{version}") } } - library("Caffeine", "3.2.0") { + library("Caffeine", "3.2.1") { group("com.github.ben-manes.caffeine") { modules = [ "caffeine", From f66159e4b11b29045cf1c682b78bf73019e915a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 10:18:19 +0200 Subject: [PATCH 138/711] Upgrade to MongoDB 5.5.1 Closes gh-45865 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 8b8f9d4a2ece..ac2f8eb9d55a 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1602,7 +1602,7 @@ bom { releaseNotes("https://github.com/mockito/mockito/releases/tag/v{version}") } } - library("MongoDB", "5.5.0") { + library("MongoDB", "5.5.1") { alignWith { version { of "org.mongodb:mongodb-driver-core" From 9a1ca2fe83734fbce5fb3734dfc9b4a48284f536 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 10 Jun 2025 10:31:37 +0100 Subject: [PATCH 139/711] Stop ignoring prefixed environment variables in management context Binding in the child context does not work correctly when an environment prefix has been configured. The prefix is not applied to the child context's Environment and, therefore, prefixed environment variables are ignored during binding. We can fix the problem by reusing the parent context's ManagementServerProperties rather than binding them again in the child context. Doing so will fix the problem reported in gh-45857 that was introduced in 020fd7b and will also avoid an unnecessary second binding of the properties. gh-45858 may fix the problem more generally by applying the prefix to the child context's environment. This would benefit situations where the properties need to be bound in the child context because they haven't already been bound in the parent. Closes gh-45847 --- ...etManagementChildContextConfiguration.java | 2 -- ...agementChildContextConfigurationTests.java | 22 +++++++++++++++++++ ...agementChildContextConfigurationTests.java | 22 +++++++++++++++++++ 3 files changed, 44 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfiguration.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfiguration.java index fefe79cb1a02..9f439939fe25 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfiguration.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/main/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfiguration.java @@ -39,7 +39,6 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnWebApplication.Type; import org.springframework.boot.autoconfigure.condition.SearchStrategy; import org.springframework.boot.autoconfigure.web.ServerProperties; -import org.springframework.boot.context.properties.EnableConfigurationProperties; import org.springframework.boot.web.embedded.jetty.JettyServletWebServerFactory; import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory; import org.springframework.boot.web.embedded.undertow.UndertowServletWebServerFactory; @@ -67,7 +66,6 @@ */ @ManagementContextConfiguration(value = ManagementContextType.CHILD, proxyBeanMethods = false) @ConditionalOnWebApplication(type = Type.SERVLET) -@EnableConfigurationProperties(ManagementServerProperties.class) class ServletManagementChildContextConfiguration { @Bean diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java index 7bfbd7153a7d..10cdda011b94 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java @@ -19,6 +19,8 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.actuate.autoconfigure.web.reactive.ReactiveManagementChildContextConfiguration.AccessLogCustomizer; +import org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties; +import org.springframework.boot.test.context.runner.ReactiveWebApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -46,4 +48,24 @@ void accessLogCustomizerWithNullPrefix() { assertThat(customizer.customizePrefix("existing")).isEqualTo("existing"); } + @Test + // gh-45857 + void failsWithoutManagementServerPropertiesBeanFromParent() { + new ReactiveWebApplicationContextRunner().run((parent) -> { + new ReactiveWebApplicationContextRunner().withParent(parent) + .withUserConfiguration(ReactiveManagementChildContextConfiguration.class) + .run((context) -> assertThat(context).hasFailed()); + }); + } + + @Test + // gh-45857 + void succeedsWithManagementServerPropertiesBeanFromParent() { + new ReactiveWebApplicationContextRunner().withBean(ManagementServerProperties.class).run((parent) -> { + new ReactiveWebApplicationContextRunner().withParent(parent) + .withUserConfiguration(ReactiveManagementChildContextConfiguration.class) + .run((context) -> assertThat(context).hasNotFailed()); + }); + } + } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java index a46dca62ca63..e4c3e3d051d3 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java @@ -18,7 +18,9 @@ import org.junit.jupiter.api.Test; +import org.springframework.boot.actuate.autoconfigure.web.server.ManagementServerProperties; import org.springframework.boot.actuate.autoconfigure.web.servlet.ServletManagementChildContextConfiguration.AccessLogCustomizer; +import org.springframework.boot.test.context.runner.WebApplicationContextRunner; import static org.assertj.core.api.Assertions.assertThat; @@ -46,4 +48,24 @@ void accessLogCustomizerWithNullPrefix() { assertThat(customizer.customizePrefix("existing")).isEqualTo("existing"); } + @Test + // gh-45857 + void failsWithoutManagementServerPropertiesBeanFromParent() { + new WebApplicationContextRunner().run((parent) -> { + new WebApplicationContextRunner().withParent(parent) + .withUserConfiguration(ServletManagementChildContextConfiguration.class) + .run((context) -> assertThat(context).hasFailed()); + }); + } + + @Test + // gh-45857 + void succeedsWithManagementServerPropertiesBeanFromParent() { + new WebApplicationContextRunner().withBean(ManagementServerProperties.class).run((parent) -> { + new WebApplicationContextRunner().withParent(parent) + .withUserConfiguration(ServletManagementChildContextConfiguration.class) + .run((context) -> assertThat(context).hasNotFailed()); + }); + } + } From 3e3be2b407150544cb546f4bc3be394aa805a41a Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Tue, 10 Jun 2025 11:07:38 +0100 Subject: [PATCH 140/711] Polish --- ...eManagementChildContextConfigurationTests.java | 14 ++++++-------- ...tManagementChildContextConfigurationTests.java | 15 ++++++--------- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java index 10cdda011b94..65290097c062 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/reactive/ReactiveManagementChildContextConfigurationTests.java @@ -51,21 +51,19 @@ void accessLogCustomizerWithNullPrefix() { @Test // gh-45857 void failsWithoutManagementServerPropertiesBeanFromParent() { - new ReactiveWebApplicationContextRunner().run((parent) -> { - new ReactiveWebApplicationContextRunner().withParent(parent) + new ReactiveWebApplicationContextRunner() + .run((parent) -> new ReactiveWebApplicationContextRunner().withParent(parent) .withUserConfiguration(ReactiveManagementChildContextConfiguration.class) - .run((context) -> assertThat(context).hasFailed()); - }); + .run((context) -> assertThat(context).hasFailed())); } @Test // gh-45857 void succeedsWithManagementServerPropertiesBeanFromParent() { - new ReactiveWebApplicationContextRunner().withBean(ManagementServerProperties.class).run((parent) -> { - new ReactiveWebApplicationContextRunner().withParent(parent) + new ReactiveWebApplicationContextRunner().withBean(ManagementServerProperties.class) + .run((parent) -> new ReactiveWebApplicationContextRunner().withParent(parent) .withUserConfiguration(ReactiveManagementChildContextConfiguration.class) - .run((context) -> assertThat(context).hasNotFailed()); - }); + .run((context) -> assertThat(context).hasNotFailed())); } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java index e4c3e3d051d3..69dd4b2abcde 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/web/servlet/ServletManagementChildContextConfigurationTests.java @@ -51,21 +51,18 @@ void accessLogCustomizerWithNullPrefix() { @Test // gh-45857 void failsWithoutManagementServerPropertiesBeanFromParent() { - new WebApplicationContextRunner().run((parent) -> { - new WebApplicationContextRunner().withParent(parent) - .withUserConfiguration(ServletManagementChildContextConfiguration.class) - .run((context) -> assertThat(context).hasFailed()); - }); + new WebApplicationContextRunner().run((parent) -> new WebApplicationContextRunner().withParent(parent) + .withUserConfiguration(ServletManagementChildContextConfiguration.class) + .run((context) -> assertThat(context).hasFailed())); } @Test // gh-45857 void succeedsWithManagementServerPropertiesBeanFromParent() { - new WebApplicationContextRunner().withBean(ManagementServerProperties.class).run((parent) -> { - new WebApplicationContextRunner().withParent(parent) + new WebApplicationContextRunner().withBean(ManagementServerProperties.class) + .run((parent) -> new WebApplicationContextRunner().withParent(parent) .withUserConfiguration(ServletManagementChildContextConfiguration.class) - .run((context) -> assertThat(context).hasNotFailed()); - }); + .run((context) -> assertThat(context).hasNotFailed())); } } From d9d8dfbac6f3640d7e4b2693e45a4cfc0bfc1a38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:12:49 +0200 Subject: [PATCH 141/711] Upgrade to Reactor Bom 2023.0.19 Closes gh-45751 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index d8227d3a7ba2..f4b642d4c67d 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1887,7 +1887,7 @@ bom { ] } } - library("Reactor Bom", "2023.0.19-SNAPSHOT") { + library("Reactor Bom", "2023.0.19") { considerSnapshots() calendarName = "Reactor" group("io.projectreactor") { From aff4dcc2c094620fd37708e3a53c9824ade3a2f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:12:53 +0200 Subject: [PATCH 142/711] Upgrade to Tomcat 10.1.42 Closes gh-45869 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index efb74a30512e..7d1b64781ea9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,6 @@ nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.2 springFrameworkVersion=6.1.21-SNAPSHOT springFramework60xVersion=6.0.23 -tomcatVersion=10.1.41 +tomcatVersion=10.1.42 kotlin.stdlib.default.dependency=false From b1454efb9d9cbb0461bfeeb570f3fc95ed6b11b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:20:26 +0200 Subject: [PATCH 143/711] Upgrade to Reactor Bom 2024.0.7 Closes gh-45765 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 9c24f762aceb..cdc73b208971 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1866,7 +1866,7 @@ bom { ] } } - library("Reactor Bom", "2024.0.7-SNAPSHOT") { + library("Reactor Bom", "2024.0.7") { considerSnapshots() calendarName = "Reactor" group("io.projectreactor") { From d25068d65a5fb1d78daa1e53446c6a46c9edfff9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:20:30 +0200 Subject: [PATCH 144/711] Upgrade to Tomcat 10.1.42 Closes gh-45870 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 4ba74fd21c6f..2ac0663e8a1a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,6 @@ nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.3 springFrameworkVersion=6.2.8-SNAPSHOT springFramework60xVersion=6.0.23 -tomcatVersion=10.1.41 +tomcatVersion=10.1.42 kotlin.stdlib.default.dependency=false From b496b8d0fd3866dedb354c31f09cfa340a34f207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:24:40 +0200 Subject: [PATCH 145/711] Upgrade to Infinispan 15.2.3.Final Closes gh-45871 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index ac2f8eb9d55a..53e63436aa75 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -668,7 +668,7 @@ bom { ] } } - library("Infinispan", "15.2.2.Final") { + library("Infinispan", "15.2.3.Final") { group("org.infinispan") { bom("infinispan-bom") } From e02ab50789e489394e1cc1c6a1bb3670fd2fcccb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:24:40 +0200 Subject: [PATCH 146/711] Upgrade to Reactor Bom 2024.0.7 Closes gh-45778 --- spring-boot-project/spring-boot-dependencies/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-dependencies/build.gradle b/spring-boot-project/spring-boot-dependencies/build.gradle index 53e63436aa75..c25c06988717 100644 --- a/spring-boot-project/spring-boot-dependencies/build.gradle +++ b/spring-boot-project/spring-boot-dependencies/build.gradle @@ -1984,7 +1984,7 @@ bom { ] } } - library("Reactor Bom", "2024.0.7-SNAPSHOT") { + library("Reactor Bom", "2024.0.7") { considerSnapshots() calendarName = "Reactor" group("io.projectreactor") { From 60ce7e06ae3418e30a7decf0b000367e156ff0b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Nicoll?= Date: Tue, 10 Jun 2025 17:24:44 +0200 Subject: [PATCH 147/711] Upgrade to Tomcat 10.1.42 Closes gh-45872 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 961153a58b9f..64dfa3089b54 100644 --- a/gradle.properties +++ b/gradle.properties @@ -21,6 +21,6 @@ nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.4 springFrameworkVersion=6.2.8-SNAPSHOT springFramework60xVersion=6.0.23 -tomcatVersion=10.1.41 +tomcatVersion=10.1.42 kotlin.stdlib.default.dependency=false From 5b759c750b4d21acf09120e6c34769cc4fd956a8 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Wed, 11 Jun 2025 10:30:00 +0100 Subject: [PATCH 148/711] Deprecate GraphQlProperties.DeprecatedSse Closes gh-45878 --- .../boot/autoconfigure/graphql/GraphQlProperties.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlProperties.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlProperties.java index 34f247ec752f..74bdbe33a42d 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlProperties.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/graphql/GraphQlProperties.java @@ -343,6 +343,7 @@ public void setTimeout(Duration timeout) { } + @Deprecated(since = "3.5.1", forRemoval = true) public static final class DeprecatedSse { private final Sse sse; From aa7e2fc0a35a1bee18ab914d600c9f80a60859be Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:26:25 +0100 Subject: [PATCH 149/711] Polish --- .../org/springframework/boot/build/antora/Contribution.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/antora/Contribution.java b/buildSrc/src/main/java/org/springframework/boot/build/antora/Contribution.java index 37a9d5b45c39..2fef45a7571f 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/antora/Contribution.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/antora/Contribution.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. @@ -20,7 +20,6 @@ import java.util.Map; import org.antora.gradle.AntoraTask; -import org.apache.commons.lang3.StringUtils; import org.gradle.api.Action; import org.gradle.api.Project; import org.gradle.api.artifacts.Dependency; @@ -30,6 +29,7 @@ import org.gradle.api.tasks.TaskProvider; import org.springframework.boot.build.AntoraConventions; +import org.springframework.util.StringUtils; /** * A contribution to Antora. From ca21600fae70caf2e1d29a4335b578d9a0c3b5f3 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 10:00:30 +0100 Subject: [PATCH 150/711] Use Framework's StreamUtils instead of Commons Compress's IOUtils Closes gh-45911 --- .../buildpack/platform/build/EphemeralBuilderTests.java | 4 ++-- .../boot/buildpack/platform/build/TestTarGzip.java | 6 +++--- .../tasks/bundling/BootBuildImageIntegrationTests.java | 6 +++--- .../springframework/boot/image/assertions/ImageAssert.java | 6 +++--- src/checkstyle/checkstyle.xml | 3 ++- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilderTests.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilderTests.java index 75ab37ee21be..3aa87f8cf9af 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilderTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/EphemeralBuilderTests.java @@ -35,7 +35,6 @@ import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; -import org.apache.commons.compress.utils.IOUtils; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.io.TempDir; @@ -46,6 +45,7 @@ import org.springframework.boot.buildpack.platform.docker.type.ImageReference; import org.springframework.boot.buildpack.platform.json.AbstractJsonTests; import org.springframework.util.FileCopyUtils; +import org.springframework.util.StreamUtils; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.entry; @@ -202,7 +202,7 @@ private File unpack(TarArchiveInputStream archive, String name) throws Exception else { file.getParentFile().mkdirs(); try (OutputStream out = new FileOutputStream(file)) { - IOUtils.copy(archive, out); + StreamUtils.copy(archive, out); } } entry = archive.getNextEntry(); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/TestTarGzip.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/TestTarGzip.java index 6a143fa2e090..c49aed4421da 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/TestTarGzip.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/test/java/org/springframework/boot/buildpack/platform/build/TestTarGzip.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. @@ -31,9 +31,9 @@ import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; -import org.apache.commons.compress.utils.IOUtils; import org.springframework.util.FileCopyUtils; +import org.springframework.util.StreamUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -110,7 +110,7 @@ private void writeEntry(TarArchiveOutputStream tar, String entryName, String con TarArchiveEntry entry = new TarArchiveEntry(entryName); entry.setSize(content.length()); tar.putArchiveEntry(entry); - IOUtils.copy(new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)), tar); + StreamUtils.copy(new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8)), tar); tar.closeArchiveEntry(); } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/dockerTest/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/dockerTest/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java index 219b150cc0d1..351636ca06aa 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/dockerTest/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/dockerTest/java/org/springframework/boot/gradle/tasks/bundling/BootBuildImageIntegrationTests.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. @@ -33,7 +33,6 @@ import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveOutputStream; import org.apache.commons.compress.compressors.gzip.GzipCompressorOutputStream; -import org.apache.commons.compress.utils.IOUtils; import org.gradle.testkit.runner.BuildResult; import org.gradle.testkit.runner.TaskOutcome; import org.junit.jupiter.api.TestTemplate; @@ -52,6 +51,7 @@ import org.springframework.boot.testsupport.gradle.testkit.GradleBuild; import org.springframework.boot.testsupport.junit.DisabledOnOs; import org.springframework.util.FileSystemUtils; +import org.springframework.util.StreamUtils; import static org.assertj.core.api.Assertions.assertThat; @@ -547,7 +547,7 @@ private void writeTarEntry(TarArchiveOutputStream tar, File file, String name, i TarArchiveEntry entry = new TarArchiveEntry(file, name); entry.setMode(mode); tar.putArchiveEntry(entry); - IOUtils.copy(Files.newInputStream(file.toPath()), tar); + StreamUtils.copy(Files.newInputStream(file.toPath()), tar); tar.closeArchiveEntry(); } diff --git a/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/java/org/springframework/boot/image/assertions/ImageAssert.java b/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/java/org/springframework/boot/image/assertions/ImageAssert.java index fc5f9509412b..ca61c89c2e22 100644 --- a/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/java/org/springframework/boot/image/assertions/ImageAssert.java +++ b/spring-boot-system-tests/spring-boot-image-tests/src/systemTest/java/org/springframework/boot/image/assertions/ImageAssert.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. @@ -26,7 +26,6 @@ import org.apache.commons.compress.archivers.tar.TarArchiveEntry; import org.apache.commons.compress.archivers.tar.TarArchiveInputStream; -import org.apache.commons.compress.utils.IOUtils; import org.assertj.core.api.AbstractAssert; import org.assertj.core.api.Assertions; import org.assertj.core.api.ListAssert; @@ -35,6 +34,7 @@ import org.springframework.boot.buildpack.platform.docker.type.ImageReference; import org.springframework.boot.buildpack.platform.docker.type.Layer; import org.springframework.boot.test.json.JsonContentAssert; +import org.springframework.util.StreamUtils; /** * AssertJ {@link org.assertj.core.api.Assert} for Docker image contents. @@ -105,7 +105,7 @@ public void jsonEntry(String name, Consumer assertConsumer) { while (entry != null) { if (entry.getName().equals(name)) { ByteArrayOutputStream entryOut = new ByteArrayOutputStream(); - IOUtils.copy(in, entryOut); + StreamUtils.copy(in, entryOut); assertConsumer.accept(new JsonContentAssert(LayerContentAssert.class, entryOut.toString())); return; } diff --git a/src/checkstyle/checkstyle.xml b/src/checkstyle/checkstyle.xml index 60c8a4d6e5dc..3838d69d7fd7 100644 --- a/src/checkstyle/checkstyle.xml +++ b/src/checkstyle/checkstyle.xml @@ -14,7 +14,8 @@ name="com.puppycrawl.tools.checkstyle.checks.imports.IllegalImportCheck"> + value="^sun.*, ^org\.apache\.commons\.(?!compress|dbcp2|logging|pool2).*, ^com\.datastax\.oss\.driver\.shaded.*, ^com\.google\.common.*, ^io\.micrometer\.core\.lang.*, ^io\.micrometer\.shaded.*, ^org\.jetbrains\.annotations.*, ^org\.testcontainers\.shaded.*, + ^org\.apache\.commons\.compress\.utils" /> From 8fcc1dd0fe842d91d66554bd3decea4238305f28 Mon Sep 17 00:00:00 2001 From: Tran Ngoc Nhan Date: Thu, 12 Jun 2025 00:59:36 +0700 Subject: [PATCH 151/711] Update javadoc of test slice annotations to suggest MockitoBean rather than MockBean See gh-45887 Signed-off-by: Tran Ngoc Nhan --- .../boot/test/autoconfigure/graphql/GraphQlTest.java | 6 +++--- .../boot/test/autoconfigure/web/reactive/WebFluxTest.java | 8 ++++---- .../boot/test/autoconfigure/web/servlet/WebMvcTest.java | 8 ++++---- .../webservices/server/WebServiceServerTest.java | 6 +++--- 4 files changed, 14 insertions(+), 14 deletions(-) diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/graphql/GraphQlTest.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/graphql/GraphQlTest.java index 81fdc34e28e2..7ecc741d53a1 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/graphql/GraphQlTest.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/graphql/GraphQlTest.java @@ -65,9 +65,9 @@ * {@link AutoConfigureGraphQlTester @AutoConfigureGraphQlTester}. *

    * Typically {@code @GraphQlTest} is used in combination with - * {@link org.springframework.boot.test.mock.mockito.MockBean @MockBean} or - * {@link org.springframework.context.annotation.Import @Import} to load any collaborators - * and other components required for the tests. + * {@link org.springframework.test.context.bean.override.mockito.MockitoBean @MockitoBean} + * or {@link org.springframework.context.annotation.Import @Import} to load any + * collaborators and other components required for the tests. *

    * To load your full application configuration instead and test via * {@code HttpGraphQlTester}, consider using diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTest.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTest.java index 746ae2f51a45..9d46e4ad23c2 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTest.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/reactive/WebFluxTest.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. @@ -68,9 +68,9 @@ * {@link AutoConfigureWebTestClient @AutoConfigureWebTestClient} annotation can be used. *

    * Typically {@code @WebFluxTest} is used in combination with - * {@link org.springframework.boot.test.mock.mockito.MockBean @MockBean} or - * {@link Import @Import} to create any collaborators required by your {@code @Controller} - * beans. + * {@link org.springframework.test.context.bean.override.mockito.MockitoBean @MockitoBean} + * or {@link Import @Import} to create any collaborators required by your + * {@code @Controller} beans. *

    * If you are looking to load your full application configuration and use WebTestClient, * you should consider {@link SpringBootTest @SpringBootTest} combined with diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java index 1674e5926de5..46c972dcd213 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/web/servlet/WebMvcTest.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. @@ -76,9 +76,9 @@ * {@link AutoConfigureMockMvc @AutoConfigureMockMvc} annotation can be used. *

    * Typically {@code @WebMvcTest} is used in combination with - * {@link org.springframework.boot.test.mock.mockito.MockBean @MockBean} or - * {@link Import @Import} to create any collaborators required by your {@code @Controller} - * beans. + * {@link org.springframework.test.context.bean.override.mockito.MockitoBean @MockitoBean} + * or {@link Import @Import} to create any collaborators required by your + * {@code @Controller} beans. *

    * If you are looking to load your full application configuration and use MockMVC, you * should consider {@link SpringBootTest @SpringBootTest} combined with diff --git a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/webservices/server/WebServiceServerTest.java b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/webservices/server/WebServiceServerTest.java index eb3d6be22b9c..316ef2300172 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/webservices/server/WebServiceServerTest.java +++ b/spring-boot-project/spring-boot-test-autoconfigure/src/main/java/org/springframework/boot/test/autoconfigure/webservices/server/WebServiceServerTest.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. @@ -51,8 +51,8 @@ * *

    * Typically {@code WebServiceServerTest} is used in combination with - * {@link org.springframework.boot.test.mock.mockito.MockBean @MockBean} or - * {@link org.springframework.context.annotation.Import @Import} to create any + * {@link org.springframework.test.context.bean.override.mockito.MockitoBean @MockitoBean} + * or {@link org.springframework.context.annotation.Import @Import} to create any * collaborators required by your {@code Endpoint} beans. *

    * If you are looking to load your full application configuration and use From 0ebe00a1d6a0aa19608f7e7d4d4d2147a73a1d98 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Wed, 11 Jun 2025 18:10:12 +0800 Subject: [PATCH 152/711] Inner class 'SpringBootWebFluxSecurityConfiguration' should be static See gh-45882 Signed-off-by: Yanming Zhou --- .../security/reactive/ReactiveSecurityAutoConfiguration.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfiguration.java index 9e07d8f9b98a..9764d802012a 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/security/reactive/ReactiveSecurityAutoConfiguration.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. @@ -54,7 +54,7 @@ public class ReactiveSecurityAutoConfiguration { @ConditionalOnWebApplication(type = ConditionalOnWebApplication.Type.REACTIVE) @Configuration(proxyBeanMethods = false) - class SpringBootWebFluxSecurityConfiguration { + static class SpringBootWebFluxSecurityConfiguration { @Bean @ConditionalOnMissingBean({ ReactiveAuthenticationManager.class, ReactiveUserDetailsService.class, From a300d2c9f0dfaf2bdfca196dea6ff40241ca243a Mon Sep 17 00:00:00 2001 From: wonyongg <111210881+wonyongg@users.noreply.github.com> Date: Mon, 9 Jun 2025 03:41:10 +0900 Subject: [PATCH 153/711] Remove constants from CloudFoundryVcapEnvironmentPostProcessor This commit removes the VCAP_APPLICATION and VCAP_SERVICES constants from the CloudFoundryVcapEnvironmentPostProcessor class, replacing them with string literals. See gh-45855 Signed-off-by: wonyongg <111210881+wonyongg@users.noreply.github.com> --- .../CloudFoundryVcapEnvironmentPostProcessor.java | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor.java index 9c15b6290bdb..30c2b83c9074 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/cloud/CloudFoundryVcapEnvironmentPostProcessor.java @@ -91,10 +91,6 @@ */ public class CloudFoundryVcapEnvironmentPostProcessor implements EnvironmentPostProcessor, Ordered { - private static final String VCAP_APPLICATION = "VCAP_APPLICATION"; - - private static final String VCAP_SERVICES = "VCAP_SERVICES"; - private final Log logger; // Before ConfigDataEnvironmentPostProcessor so values there can use these @@ -126,12 +122,12 @@ public void postProcessEnvironment(ConfigurableEnvironment environment, SpringAp addWithPrefix(properties, getPropertiesFromApplication(environment, jsonParser), "vcap.application."); addWithPrefix(properties, getPropertiesFromServices(environment, jsonParser), "vcap.services."); MutablePropertySources propertySources = environment.getPropertySources(); + PropertiesPropertySource vcapSource = new PropertiesPropertySource("vcap", properties); if (propertySources.contains(CommandLinePropertySource.COMMAND_LINE_PROPERTY_SOURCE_NAME)) { - propertySources.addAfter(CommandLinePropertySource.COMMAND_LINE_PROPERTY_SOURCE_NAME, - new PropertiesPropertySource("vcap", properties)); + propertySources.addAfter(CommandLinePropertySource.COMMAND_LINE_PROPERTY_SOURCE_NAME, vcapSource); } else { - propertySources.addFirst(new PropertiesPropertySource("vcap", properties)); + propertySources.addFirst(vcapSource); } } } @@ -146,7 +142,7 @@ private void addWithPrefix(Properties properties, Properties other, String prefi private Properties getPropertiesFromApplication(Environment environment, JsonParser parser) { Properties properties = new Properties(); try { - String property = environment.getProperty(VCAP_APPLICATION, "{}"); + String property = environment.getProperty("VCAP_APPLICATION", "{}"); Map map = parser.parseMap(property); extractPropertiesFromApplication(properties, map); } @@ -159,7 +155,7 @@ private Properties getPropertiesFromApplication(Environment environment, JsonPar private Properties getPropertiesFromServices(Environment environment, JsonParser parser) { Properties properties = new Properties(); try { - String property = environment.getProperty(VCAP_SERVICES, "{}"); + String property = environment.getProperty("VCAP_SERVICES", "{}"); Map map = parser.parseMap(property); extractPropertiesFromServices(properties, map); } From dcd3a23d022e4ee5e8ac076c9c915f8fd500e2a9 Mon Sep 17 00:00:00 2001 From: Shekhar Aggarwal Date: Thu, 5 Jun 2025 00:31:23 +0530 Subject: [PATCH 154/711] Add SSL response structure to actuator info endpoint documentation See gh-45792 Signed-off-by: Shekhar Aggarwal --- .../modules/api/pages/rest/actuator/info.adoc | 10 +++ .../info/InfoEndpointDocumentationTests.java | 64 +++++++++++++++++- .../src/test/resources/test.p12 | Bin 0 -> 7441 bytes 3 files changed, 73 insertions(+), 1 deletion(-) create mode 100644 spring-boot-project/spring-boot-actuator-autoconfigure/src/test/resources/test.p12 diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/docs/antora/modules/api/pages/rest/actuator/info.adoc b/spring-boot-project/spring-boot-actuator-autoconfigure/src/docs/antora/modules/api/pages/rest/actuator/info.adoc index 1128987a6741..e2900d6274f9 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/docs/antora/modules/api/pages/rest/actuator/info.adoc +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/docs/antora/modules/api/pages/rest/actuator/info.adoc @@ -76,3 +76,13 @@ The following table describes the structure of the `java` section of the respons [cols="2,1,3"] include::partial$rest/actuator/info/response-fields-beneath-java.adoc[] + + + +[[info.retrieving.response-structure.ssl]] +==== SSL Response Structure + +The following table describes the structure of the `ssl` section of the response: + +[cols="2,1,3"] +include::partial$rest/actuator/info/response-fields-beneath-ssl.adoc[] diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/info/InfoEndpointDocumentationTests.java b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/info/InfoEndpointDocumentationTests.java index b3a5f9c7258d..bc0dac2215f2 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/info/InfoEndpointDocumentationTests.java +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/java/org/springframework/boot/actuate/autoconfigure/info/InfoEndpointDocumentationTests.java @@ -16,6 +16,7 @@ package org.springframework.boot.actuate.autoconfigure.info; +import java.time.Duration; import java.time.Instant; import java.util.List; import java.util.Properties; @@ -30,8 +31,15 @@ import org.springframework.boot.actuate.info.JavaInfoContributor; import org.springframework.boot.actuate.info.OsInfoContributor; import org.springframework.boot.actuate.info.ProcessInfoContributor; +import org.springframework.boot.actuate.info.SslInfoContributor; import org.springframework.boot.info.BuildProperties; import org.springframework.boot.info.GitProperties; +import org.springframework.boot.info.SslInfo; +import org.springframework.boot.ssl.DefaultSslBundleRegistry; +import org.springframework.boot.ssl.SslBundle; +import org.springframework.boot.ssl.SslStoreBundle; +import org.springframework.boot.ssl.jks.JksSslStoreBundle; +import org.springframework.boot.ssl.jks.JksSslStoreDetails; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.restdocs.mockmvc.MockMvcRestDocumentation; @@ -55,7 +63,7 @@ class InfoEndpointDocumentationTests extends MockMvcEndpointDocumentationTests { void info() { assertThat(this.mvc.get().uri("/actuator/info")).hasStatusOk() .apply(MockMvcRestDocumentation.document("info", gitInfo(), buildInfo(), osInfo(), processInfo(), - javaInfo())); + javaInfo(), sslInfo())); } private ResponseFieldsSnippet gitInfo() { @@ -142,6 +150,45 @@ private ResponseFieldsSnippet javaInfo() { .optional()); } + private ResponseFieldsSnippet sslInfo() { + return responseFields(beneathPath("ssl"), + fieldWithPath("bundles").description("SSL bundles information.").type(JsonFieldType.ARRAY), + fieldWithPath("bundles[].name").description("Name of the SSL bundle.").type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains").description("Certificate chains in the bundle.") + .type(JsonFieldType.ARRAY), + fieldWithPath("bundles[].certificateChains[].alias").description("Alias of the certificate chain.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates").description("Certificates in the chain.") + .type(JsonFieldType.ARRAY), + fieldWithPath("bundles[].certificateChains[].certificates[].subject") + .description("Subject of the certificate.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].version") + .description("Version of the certificate.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].issuer") + .description("Issuer of the certificate.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].validityStarts") + .description("Certificate validity start date.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].serialNumber") + .description("Serial number of the certificate.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].validityEnds") + .description("Certificate validity end date.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].validity") + .description("Certificate validity information.") + .type(JsonFieldType.OBJECT), + fieldWithPath("bundles[].certificateChains[].certificates[].validity.status") + .description("Certificate validity status.") + .type(JsonFieldType.STRING), + fieldWithPath("bundles[].certificateChains[].certificates[].signatureAlgorithmName") + .description("Signature algorithm name.") + .type(JsonFieldType.STRING)); + } + @Configuration(proxyBeanMethods = false) static class TestConfiguration { @@ -186,6 +233,21 @@ JavaInfoContributor javaInfoContributor() { return new JavaInfoContributor(); } + @Bean + SslInfo sslInfo() { + DefaultSslBundleRegistry sslBundleRegistry = new DefaultSslBundleRegistry(); + JksSslStoreDetails keyStoreDetails = JksSslStoreDetails.forLocation("classpath:test.p12") + .withPassword("secret"); + SslStoreBundle sslStoreBundle = new JksSslStoreBundle(keyStoreDetails, null); + sslBundleRegistry.registerBundle("test-0", SslBundle.of(sslStoreBundle)); + return new SslInfo(sslBundleRegistry, Duration.ofDays(7)); + } + + @Bean + SslInfoContributor sslInfoContributor(SslInfo sslInfo) { + return new SslInfoContributor(sslInfo); + } + } } diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/resources/test.p12 b/spring-boot-project/spring-boot-actuator-autoconfigure/src/test/resources/test.p12 new file mode 100644 index 0000000000000000000000000000000000000000..e1255f26f6659a9694a412c77aea76ebeb571985 GIT binary patch literal 7441 zcmbW6RZtw=` zt$DgrQ|IB-UR&xseYI;HSRffD0uT`vNctTal_^vv^ac|M24)A67J~vw^Z&}(ut0Rp z|CK_Q0R^H<{FOyufk;`%=>OA&fd)j#4n+D#6o8rks{;uWrVZo$cZdOF2I2qEisKJ8 z<)tToiPPmNGqo*FrCCQnV8BKIQo=BhQT}@(0xA*!Muv=P6e@dD7CaqZibuIelVZ2Np4Wy7W^a zQkT@y5T1wk=9|LKIi}_)yOAPE#+}y<>3PBac^m^aNMWqiyLVw~M!e|NokBGY9+-g%sKyHh85r}avHUn1Lf$#%6?NI^<)gpBkm+Zgz$h3YMt zn7Alr6J*ur@W_kZVE2YG<7?C74#mjjHWR$s;Wt5!DG~ zn6T{sWHY0mkAYF_i|2eN7kpZ1l`3g7LWwzx+=!DeB_)%WZiX#x=SPGtRN0m&G<2ydEqUMcW zsB$2%gdgdm;HV=9`PHyU5wLmfMV|9zO|aan9TgS`n24pp$z3ykIPdE~THH$R$BQXq zxN9c;sMeCPlG<-@hy(dGoGWt=G3LzLVyx0|{mkxY70-T5H-7V2e5t0C0Je1c`*nopzWq|&a>%*8;aADA9j2o=NR;eO z(~rpwI;Wt~L&?wRCR&qWr|z~+ZMXVyThyR%YGLm`F`hxcfbIHlhR6}48vlr5@m!<> zUp^w?`@09Y#KZ>Mr;R!C)y()AP+*e!!>DPx#>P~9&Za)GR4rB|pc;sBcLxoZ(=+Ox zFB+A&a2EtAr;fJyusBw8l7)@dza==RILN2!KoC_yk?0aduYg5ZF&uN@V@sbtP$3he zx~9@@cPsd!&@AB>hmGd&#?ekejme0MpBYQzt1S|>Rq-nl6W)+Fc-m%)q)%jRX!{9c zqO#JA>i2r}bdQx|c1tDb$1ce|Jep%&Wi+;pc9=PAWMoa)q99h!FmT#i`3<4_5%u89 z7;=Zn?t`H1hYa%p$zJKG`}~UeYf*12HX*z570^djy|TcmseCJTNUhF2P~+Yph!2by z&jqAV)S$=LyHV;hB2?(5BI4Z#pfU*CjdAD8~{!LD}Wuq0>BC|0oeaNE-06h(toRz>ql2(uYjYLU%A^i`a zNh?P1z`1T}rkRs_WYfJIU3hN6Nx|w0ncr#QwYVyUIDCcWSGz zdU2f(9pq79DHoyTQagX~*|SOV?m0JLYyS>BrTJCv(%QQp9R+Kja_rt)yjzXw2r|YVV{~jBx^k%`hHS~wpN6Xtc6A@KGaN+km z5lD5Gc;B}(ATx4Uh(!}fdyJ(vBuz}y(hgLOL(#-nRpY6Dnwakzw#scVMHE?i`h7ZP zZG4c7q+LBJ8yz9*+`e{m9+0yZ^xrYQzxUi{J`dyedz>20U|AqIX1f>O{+@yGW0WyZ z5=HAHt5lG|a^MqC;}B?uv~ZZY(!?Ee`EFZ?Px2M`)Xd zqEQfo#Aj)9;-dI?Ae&?ag#ptP8zJ#=5&_4%X<-Q?+iiI)hf^?T3(@sJYFB6ih&g~bsFk6Gl zu``&Ff32|C#jd2dsj8u&MFmck;;)_~eszU9@Fko41}TxB5=0(KQHXh5@Y#PkQq)1_ z02h~LoD~3eb1LQP$+hOB`}(=ZruevKuGq`v<5r3~)5dUg29ly_sH^LV9u~adZpl6& zMKytIWQ{I~kQm=)EB*97tQcCA&BzAwh+}o`v7o^#i#o?OdexYr2Ws9ObDYy z@7N*!%^xF~Iph;F*(`lM@z*Bl@pNVC3vToPQ)X1R&t=#qjS8@IUR-=sSl*{})_0s=zQnU4Y8T6_a#W=<6>3KyPx$lX{E^YKJz}HoA+mJCa??VEFE5qld{#islJ_V4)nso={SH66@Y@liIVF=AxP!Q zfwcM8bhZD8PLH$#%0Vs@Mrd-~(a z1}?>ss&2(#(&i9CWS`lYCGFCd@Hou9jY9fJ<|o@Zg?guNJLSr|d;^)MMCfZ3o&$KB6YM0zgsx=)Wa&A;IA_(z z3oCt2{Rm&a4s3;9^uL!W&aiKNmv|5LyYna9fmcX(tPMKO~Z9XI!uLzyqU-?&yl#? zY8Ew|yGTW$I5cra|L(^q2})_QS@_`Vtgs?c5})+od zXCv8`sRn}wOcb9bQ;hL`B=BhHII9kLg$Z4Os#t*?Rj%pKzJ5Kluf-|$B!NnEHeVdS z;FQ|j)=s3J?bkODcZ!cY3IeP{>vM;U?i-#kjhr)c=6KhdhyNhs3>#Z-FD7h&`P+JM z%Awbd@F-`~_zDCyj9e2l2Gs-5e8m97e9ke7IwP1nv?4!ph;_4BSu`y;VX-jc)A-0M zWFz8SVXi(L@0aA}lTAUL{yNMP%iS)i53@0(CMGW*7EuZ~j!4`3hd0(PlJJl_#DlQ9 z`jx@wcadhujX+NjZKIsO&2&8YEDVWu!#G_PPgprD?Zb@ILpDstWM3hSwz~50D0(hU z$Hpoyq~TO!nN^w9xD#8DY8}?boHvm_SxF3F5iXehM$}{8(y;ZKUPW$5clf#2a@4k| z5O3gWl;1lTsB*p;PR+`nrx0*>a`%gP!0b>@Np)c^blRce;D=+pqzucL-e*hVev`O0 zo>AMm(J7=fzy8rue>IDz%4>^>iZp|xi`ZaPc5S1ikTZ20Qo{)ouyd08fiDRN$2`9| zTaOA`9*bM_ry-;9e%AHVht;178Yz^6;JsKnQ(pmVN-f);&xNQ@2p0B&Uh$cApUO~^ zAp)0|I(341T=$IIij6i!!LK9anS^$86s%?}2JM8*#U$;db8z{yl(y7)s9Y6~6xIPY z)4crpHaopcC(o+FMdLo@UQ)If3b%63k&JYhdJOo=1DF0h1uJT2*Pk??8Mw|!5Bxws z8O4>#Y`n{^h?l@QkbLcH@}|mGFnRHg;ljjkr>;87BQRtdbSMT`v;+n0_Dfj z>H#SHJ)Kw|3)?9aoMUfn)nGf9-aQ8q_!;N7pBU@UaTL>f3#oE^4t~pq_qlv=RV&&z zcC3wrynNZgR8060hv`2*aiE1S+<0#fU&R~wtX`U`VyzIBL9MyEh3BppXpZ;NF6Kd7 z(2q*!Q3>dzBo$KK&iESFjH%yQTX@zf-U{%3UEYQNJ-0f6mz~H^k?HVI$V=a}hBM;W zx~?vbR^0D8WF!-5VsX*yju$vQNX~-lC?%&s)0xL@rj9T3smI}E!xFV}>WZQF1h?@` zh0Arxwgqf@MQks1LU!7iLZxcCTeQcH)Kc1-B+=bihbM*ttpB!z?%v~o8h-Z7TeBjC zAy+xf6qkEHE_yc2AKMjAgn8BCxqLoFF8Ma8w-=aL zcF4UECC?{;UXz-{7B`>HTJUMB#5MF)^Ar5DnrEHNb;>eB)0cx4xft%$!(po}2AkF_ zsr9@VPaIKMygGN;(3__oO3Ew3OszBXG8KpUu2R6mvD4q#&ud04LiIvk zH$vD8ts(ZLf%CJE98WuyJ{+h`?l2R{V-skJi^i9vOwo-Zz)jQza(>5a?uSVgaGIO_jny8|?70 zi2>KiU{$F`@4X6X3F|DJ32}0vI*MUW(5W-}h54_A$tP}xtdlwg@z%wT192HOVtjcD zWb&NwBCmEmd7Sr+yI{s9qtrsdRuz@-=JNAF7whuR6c)w50!Z~4uATgkSSgG$0~Cn( zCPVq7>WK5*a@y5v^+i6I;B>Ggq~{v}DWSAxi=fvc-4>?YKlYyxR$2^+TO`Uw1+T!S z60H_T$*%})Ljw{F3?JG*(QY=0sEw5~YmN0?L*ahCWWRQ3UnJmBVE=Gqq_$h77zcq~ zgLe$`4bgd5T?TxFlcBPL7LHgziUDf0NNAB+gvM$^=Bsq05+Teb+kl13Q89c4h#97f z?TiOs3lEpALYUa?7^KqPW5D~fea^>O?N_m$BqaF9yMNv!oe}xhyKvjlPTusvOWUnW zteoqXw$-VF0RWt?f~zl?ZG9UN6rT$H$Y{7bgsii{AC_4RVi%}tg!}b;_kv>D0TaLU zBrrEQr!Kc|T)M?JopnLk$_WZ@BGs)uY*})uZ z1SJB|y&B}Qp1l_u6G`=UV z`xv6bt+X)oZH#twLPtw5&4md3=jWrrfkR)0Y~_pYR|9B2Q)t(#DyB!u*2Mj90F!9C zAA!L=hulyGg37`a%xH#OY{hskH5APv;z9Gl6pfLv)g?c|gz&=?N zX6&rbrHw@x%_=f`Fi#MHq*j>|QYWo2odCf7;}Vmf3OVglPQtuHb-AlNM-BDi_y%Us z*7G5;zn{<=O408X?$Bt-H<+WJ4axiw0;AD72y<)5GBV!A0RVe@A5m&(J}poXXnnafeCQFrU$Dr$up)N|bGlsSsk2!~z46LM+~nnRD# zB(N!1m|e6ik!fHiU=&8t95{6_+d_(W4ZA6gL5wEHm*A6u4*d`2md&3s$fRGXq=S0va$1ZJ|5+S zIpxLg(FWtyk#@aXA;^gahzMy}Mi}=_P;%97j5!i)l& zdU?;FiuImDp;VuH_VkK2uclleAof7pt>%wW#n?VFqqxsK9xzdB9rcQrK7Q+)->Xcc z+eZYu>yNC17&K`m6m#&Q<58jpB7y1aD5~g#R8LO6JDV&a&$8#lf@Jt2Ud=9-D9`yl z+X7IG?e0x4(mNq~#I(%4F**O7oR7q3>yHSlRzmdptZv>dr3LPpwc#7O?~39-m&zN$ zb}S$ry=c!G@%x*n`06H}ZYDlon3BDZqzxR8S>U-x%peri3bgfyVm4@@ril%qQyZJ0 zHhcb{0KCfiu4i?U?cJ2d;F^&^2l}XVCG6l6adZ-|FK)zzU!e01U(qTFcF8-v=K1es z#qL3<5q|VZH-<(LtA{Cu6%qSf*i{L?c1fIW;4^)lKLDm)lEgKfmhp5Qv@Z=G zn5=v=9BrOx`H)gsn;S6dcj4?Wr_<{&RF`e%daR$~nj&hcw{LUcN^D+Bb(BPEAu>Wp zd+W!0)g*NLbRM(>m<68N4Yz;vK3M+U@Rwd0en4ct6CLX}63w^Y@j@i@!K%9qxn-b? zexRStD9;&27UjUZU7u>@nTXTsi`~j)E4aIU_Nc|4mN_7tS1%WBGa?#k9!i|zq6^dN zSakW^mWHN>sWbVwRF969kz)MU?!$nT9JVkbN%Us>pVLZo{xqU!t|z3jb`qf8Lx^Mh zdQm2*Yadq-)^$sWdHHbB{^5;a>O6^w+_L7C(Q|HoAD8hK|E5rhx z@mlinc72nNC*3n|I-L&|7$^)?32?;DsRtf=N-E zfip1PoUypEO0c+??(zKUXtOmbj;QXw;`%gfdO-ly)UX#4?yAWEH8QOFo?t~d+I`iL zGB>1U4FROqey+4Vw>j5GwC&q($9;!Fmqk1)!$*eUVwWhO-v=4uqHH^10(R5RzTd{4cP Z4NE5WCo01)iigeN*5<0D^8Z*S{{=9b#?k-) literal 0 HcmV?d00001 From 449cb23614ad7ef1ade9fd3448df094af44dbbb0 Mon Sep 17 00:00:00 2001 From: wonyongg <111210881+wonyongg@users.noreply.github.com> Date: Thu, 12 Jun 2025 17:06:20 +0900 Subject: [PATCH 155/711] Fix typo in variable name See gh-45894 Signed-off-by: wonyongg <111210881+wonyongg@users.noreply.github.com> --- .../boot/autoconfigure/batch/BatchAutoConfiguration.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BatchAutoConfiguration.java b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BatchAutoConfiguration.java index e09ab3e8de0e..8b5643452348 100644 --- a/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BatchAutoConfiguration.java +++ b/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BatchAutoConfiguration.java @@ -102,7 +102,7 @@ static class SpringBootBatchConfiguration extends DefaultBatchConfiguration { private final PlatformTransactionManager transactionManager; - private final TaskExecutor taskExector; + private final TaskExecutor taskExecutor; private final BatchProperties properties; @@ -118,7 +118,7 @@ static class SpringBootBatchConfiguration extends DefaultBatchConfiguration { ObjectProvider executionContextSerializer) { this.dataSource = batchDataSource.getIfAvailable(() -> dataSource); this.transactionManager = batchTransactionManager.getIfAvailable(() -> transactionManager); - this.taskExector = batchTaskExecutor.getIfAvailable(); + this.taskExecutor = batchTaskExecutor.getIfAvailable(); this.properties = properties; this.batchConversionServiceCustomizers = batchConversionServiceCustomizers.orderedStream().toList(); this.executionContextSerializer = executionContextSerializer.getIfAvailable(); @@ -163,7 +163,7 @@ protected ExecutionContextSerializer getExecutionContextSerializer() { @Override protected TaskExecutor getTaskExecutor() { - return (this.taskExector != null) ? this.taskExector : super.getTaskExecutor(); + return (this.taskExecutor != null) ? this.taskExecutor : super.getTaskExecutor(); } } From f68e5b36afce90fb4300fb44bc0ef9f75359c5bf Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 11:07:52 +0100 Subject: [PATCH 156/711] Allow group that is prohibited by default to be permitted Closes gh-45920 --- .../CheckClasspathForProhibitedDependencies.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/classpath/CheckClasspathForProhibitedDependencies.java b/buildSrc/src/main/java/org/springframework/boot/build/classpath/CheckClasspathForProhibitedDependencies.java index 70d39f019462..72acde870ada 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/classpath/CheckClasspathForProhibitedDependencies.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/classpath/CheckClasspathForProhibitedDependencies.java @@ -26,7 +26,9 @@ import org.gradle.api.artifacts.Configuration; import org.gradle.api.artifacts.ModuleVersionIdentifier; import org.gradle.api.file.FileCollection; +import org.gradle.api.provider.SetProperty; import org.gradle.api.tasks.Classpath; +import org.gradle.api.tasks.Input; import org.gradle.api.tasks.TaskAction; /** @@ -47,6 +49,9 @@ public CheckClasspathForProhibitedDependencies() { getOutputs().upToDateWhen((task) -> true); } + @Input + public abstract SetProperty getPermittedGroups(); + public void setClasspath(Configuration classpath) { this.classpath = classpath; } @@ -75,8 +80,8 @@ public void checkForProhibitedDependencies() { } private boolean prohibited(ModuleVersionIdentifier id) { - return PROHIBITED_GROUPS.contains(id.getGroup()) || prohibitedJavax(id) || prohibitedSlf4j(id) - || prohibitedJbossSpec(id); + return (!getPermittedGroups().get().contains(id.getGroup())) && (PROHIBITED_GROUPS.contains(id.getGroup()) + || prohibitedJavax(id) || prohibitedSlf4j(id) || prohibitedJbossSpec(id)); } private boolean prohibitedSlf4j(ModuleVersionIdentifier id) { From 2d0ebe937978afd9fef446a1f9a36190f6bb7e3f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:22 +0100 Subject: [PATCH 157/711] Upgrade to AWS Advanced JDBC Wrapper 2.6.0 Closes gh-45895 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index dacd61c03a72..6af9f8c5a280 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -25,7 +25,7 @@ bom { ] } } - library("AWS Advanced JDBC Wrapper", "2.5.4") { + library("AWS Advanced JDBC Wrapper", "2.6.0") { group("software.amazon.jdbc") { modules = [ "aws-advanced-jdbc-wrapper" From 4b78861ca01ca02442077c5e3fb1a3a2df661a9b Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:26 +0100 Subject: [PATCH 158/711] Upgrade to C3P0 0.11.1 Closes gh-45896 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 6af9f8c5a280..ccd57e1e30ed 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -32,7 +32,7 @@ bom { ] } } - library("C3P0", "0.9.5.5") { + library("C3P0", "0.11.1") { group("com.mchange") { modules = [ "c3p0" From 27bf83fa6d33c8bb4382058ed2a1049a1ce2a4ea Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:30 +0100 Subject: [PATCH 159/711] Upgrade to ClickHouse 0.9.0 Closes gh-45897 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index ccd57e1e30ed..66bcecfd7ff4 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -39,7 +39,7 @@ bom { ] } } - library("ClickHouse", "0.6.5") { + library("ClickHouse", "0.9.0") { group("com.clickhouse") { modules = [ "clickhouse-jdbc", From c6748144fba1a0dcd0837ee37c3c19ddfb636105 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:34 +0100 Subject: [PATCH 160/711] Upgrade to Commons Compress 1.27.1 Closes gh-45898 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- .../boot/buildpack/platform/io/ZipFileTarArchive.java | 4 ++-- .../bundling/AbstractBootArchiveIntegrationTests.java | 8 ++++++-- .../gradle/tasks/bundling/AbstractBootArchiveTests.java | 4 ++-- .../boot/gradle/testkit/PluginClasspathGradleBuild.java | 1 + .../boot/loader/tools/RepackagerTests.java | 6 +++--- 6 files changed, 15 insertions(+), 10 deletions(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 66bcecfd7ff4..62a46fb12908 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -47,7 +47,7 @@ bom { ] } } - library("Commons Compress", "1.25.0") { + library("Commons Compress", "1.27.1") { group("org.apache.commons") { modules = [ "commons-compress" diff --git a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/ZipFileTarArchive.java b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/ZipFileTarArchive.java index c1d3b100211e..5ea6a459a848 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/ZipFileTarArchive.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io/ZipFileTarArchive.java @@ -64,7 +64,7 @@ public ZipFileTarArchive(File zip, Owner owner) { public void writeTo(OutputStream outputStream) throws IOException { TarArchiveOutputStream tar = new TarArchiveOutputStream(outputStream); tar.setLongFileMode(TarArchiveOutputStream.LONGFILE_POSIX); - try (ZipFile zipFile = new ZipFile(this.zip)) { + try (ZipFile zipFile = ZipFile.builder().setFile(this.zip).get()) { Enumeration entries = zipFile.getEntries(); while (entries.hasMoreElements()) { ZipArchiveEntry zipEntry = entries.nextElement(); @@ -75,7 +75,7 @@ public void writeTo(OutputStream outputStream) throws IOException { } private void assertArchiveHasEntries(File file) { - try (ZipFile zipFile = new ZipFile(file)) { + try (ZipFile zipFile = ZipFile.builder().setFile(file).get()) { Assert.state(zipFile.getEntries().hasMoreElements(), () -> "Archive file '" + file + "' is not valid"); } catch (IOException ex) { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java index 202172abf49a..d2050ddc8f8b 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveIntegrationTests.java @@ -579,7 +579,9 @@ void javaVersionIsSetInManifest() throws IOException { void defaultDirAndFileModesAreUsed() throws IOException { BuildResult result = this.gradleBuild.build(this.taskName); assertThat(result.task(":" + this.taskName).getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - try (ZipFile jarFile = new ZipFile(new File(this.gradleBuild.getProjectDir(), "build/libs").listFiles()[0])) { + try (ZipFile jarFile = ZipFile.builder() + .setFile(new File(this.gradleBuild.getProjectDir(), "build/libs").listFiles()[0]) + .get()) { Enumeration entries = jarFile.getEntries(); while (entries.hasMoreElements()) { ZipArchiveEntry entry = entries.nextElement(); @@ -605,7 +607,9 @@ void dirModeAndFileModeAreApplied() throws IOException { "upgrading_version_8.html#unix_file_permissions_deprecated") .build(this.taskName); assertThat(result.task(":" + this.taskName).getOutcome()).isEqualTo(TaskOutcome.SUCCESS); - try (ZipFile jarFile = new ZipFile(new File(this.gradleBuild.getProjectDir(), "build/libs").listFiles()[0])) { + try (ZipFile jarFile = ZipFile.builder() + .setFile(new File(this.gradleBuild.getProjectDir(), "build/libs").listFiles()[0]) + .get()) { Enumeration entries = jarFile.getEntries(); while (entries.hasMoreElements()) { ZipArchiveEntry entry = entries.nextElement(); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveTests.java b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveTests.java index 2c9c2213b5b9..eb800b7bce42 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/test/java/org/springframework/boot/gradle/tasks/bundling/AbstractBootArchiveTests.java @@ -330,7 +330,7 @@ void launchScriptCanBePrepended() throws IOException { File archiveFile = this.task.getArchiveFile().get().getAsFile(); assertThat(Files.readAllBytes(archiveFile.toPath())) .startsWith(new DefaultLaunchScript(null, properties).toByteArray()); - try (ZipFile zipFile = new ZipFile(archiveFile)) { + try (ZipFile zipFile = ZipFile.builder().setFile(archiveFile).get()) { assertThat(zipFile.getEntries().hasMoreElements()).isTrue(); } try { @@ -460,7 +460,7 @@ void allEntriesUseUnixPlatformAndUtf8NameEncoding() throws IOException { this.task.classpath(classpathDirectory); executeTask(); File archivePath = this.task.getArchiveFile().get().getAsFile(); - try (ZipFile zip = new ZipFile(archivePath)) { + try (ZipFile zip = ZipFile.builder().setFile(archivePath).get()) { Enumeration entries = zip.getEntries(); while (entries.hasMoreElements()) { ZipArchiveEntry entry = entries.nextElement(); 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..c1d90b5205f6 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 @@ -80,6 +80,7 @@ private List pluginClasspath() { new File(pathOfJarContaining("org.jetbrains.kotlin.daemon.client.KotlinCompilerClient")), new File(pathOfJarContaining(KotlinCompilerPluginSupportPlugin.class)), new File(pathOfJarContaining(LanguageSettings.class)), + new File(pathOfJarContaining("org.apache.commons.io.Charsets")), new File(pathOfJarContaining(ArchiveEntry.class)), new File(pathOfJarContaining(BuildRequest.class)), new File(pathOfJarContaining(HttpClientConnectionManager.class)), new File(pathOfJarContaining(HttpRequest.class)), diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/RepackagerTests.java b/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/RepackagerTests.java index 239c0cc381e4..660958ab6e48 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/RepackagerTests.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/src/test/java/org/springframework/boot/loader/tools/RepackagerTests.java @@ -162,7 +162,7 @@ void addLauncherScript() throws Exception { assertThat(new String(bytes)).startsWith("ABC"); assertThat(hasLauncherClasses(source)).isFalse(); assertThat(hasLauncherClasses(this.destination)).isTrue(); - try (ZipFile zipFile = new ZipFile(this.destination)) { + try (ZipFile zipFile = ZipFile.builder().setFile(this.destination).get()) { assertThat(zipFile.getEntries().hasMoreElements()).isTrue(); } try { @@ -267,7 +267,7 @@ protected void execute(Repackager packager, Libraries libraries) throws IOExcept @Override protected Collection getAllPackagedEntries() throws IOException { List result = new ArrayList<>(); - try (ZipFile zip = new ZipFile(this.destination)) { + try (ZipFile zip = ZipFile.builder().setFile(this.destination).get()) { Enumeration entries = zip.getEntries(); while (entries.hasMoreElements()) { result.add(entries.nextElement()); @@ -285,7 +285,7 @@ protected Manifest getPackagedManifest() throws IOException { @Override protected String getPackagedEntryContent(String name) throws IOException { - try (ZipFile zip = new ZipFile(this.destination)) { + try (ZipFile zip = ZipFile.builder().setFile(this.destination).get()) { ZipArchiveEntry entry = zip.getEntry(name); if (entry == null) { return null; From f282af424ad95fa9781f6687cc9636a131c939f7 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:39 +0100 Subject: [PATCH 161/711] Upgrade to Commons FileUpload 1.6.0 Closes gh-45899 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 62a46fb12908..d33e80c61237 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -54,7 +54,7 @@ bom { ] } } - library("Commons FileUpload", "1.5") { + library("Commons FileUpload", "1.6.0") { group("commons-fileupload") { modules = [ "commons-fileupload" From 5b4b7f5ea9cdabb0bd160a2433e10bf4d75f8cf2 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:43 +0100 Subject: [PATCH 162/711] Upgrade to Janino 3.1.12 Closes gh-45900 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index d33e80c61237..62ba8945c325 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -68,7 +68,7 @@ bom { ] } } - library("Janino", "3.1.10") { + library("Janino", "3.1.12") { group("org.codehaus.janino") { bom("janino") { permit("junit:junit") From b6b378390f27416ae0c661216bb7f0f690a2b37f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:47 +0100 Subject: [PATCH 163/711] Upgrade to JNA 5.17.0 Closes gh-45901 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 62ba8945c325..06db2b9daf0c 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -86,7 +86,7 @@ bom { ] } } - library("JNA", "5.13.0") { + library("JNA", "5.17.0") { group("net.java.dev.jna") { modules = [ "jna-platform" From e0b9b44814b2e339a141ef18f920c3d79cac6060 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:51 +0100 Subject: [PATCH 164/711] Upgrade to Maven 3.9.10 Closes gh-45902 --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 64dfa3089b54..a6366f09c49a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -15,7 +15,7 @@ jacksonVersion=2.19.0 javaFormatVersion=0.0.43 junitJupiterVersion=5.12.2 kotlinVersion=1.9.25 -mavenVersion=3.9.4 +mavenVersion=3.9.10 mockitoVersion=5.17.0 nativeBuildToolsVersion=0.10.6 snakeYamlVersion=2.4 From 8c7275fdb105fcd311b34674a97bb29b1878d598 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:55 +0100 Subject: [PATCH 165/711] Upgrade to Maven Common Artifact Filters 3.4.0 Closes gh-45903 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 06db2b9daf0c..3276eb632699 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -110,7 +110,7 @@ bom { ] } } - library("Maven Common Artifact Filters", "3.3.2") { + library("Maven Common Artifact Filters", "3.4.0") { group("org.apache.maven.shared") { modules = [ "maven-common-artifact-filters" From 4996c70f48fc0e00936052c21cb8a368f0f47e49 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:19:59 +0100 Subject: [PATCH 166/711] Upgrade to Maven Invoker 3.3.0 Closes gh-45904 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- .../intTest/java/org/springframework/boot/maven/MavenBuild.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 3276eb632699..573bd1f6b96b 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -117,7 +117,7 @@ bom { ] } } - library("Maven Invoker", "3.2.0") { + library("Maven Invoker", "3.3.0") { group("org.apache.maven.shared") { modules = [ "maven-invoker" diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/MavenBuild.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/MavenBuild.java index 7393ef9233d4..9804b8e5fe09 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/MavenBuild.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/intTest/java/org/springframework/boot/maven/MavenBuild.java @@ -167,7 +167,7 @@ public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IO request.setBaseDirectory(this.temp); request.setJavaHome(new File(System.getProperty("java.home"))); request.setProperties(this.properties); - request.setGoals(this.goals.isEmpty() ? Collections.singletonList("package") : this.goals); + request.addArgs(this.goals.isEmpty() ? Collections.singletonList("package") : this.goals); request.setUserSettingsFile(new File(this.temp, "settings.xml")); request.setUpdateSnapshots(true); request.setBatchMode(true); From 2c234171ef50de7aa4998eb8f7aa56482c4ae22f Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:20:03 +0100 Subject: [PATCH 167/711] Upgrade to Maven Plugin Tools 3.15.1 Closes gh-45905 --- .../spring-boot-parent/build.gradle | 2 +- .../spring-boot-maven-plugin/build.gradle | 6 ++++-- .../boot/maven/AbstractAotMojo.java | 8 +++++--- .../boot/maven/AbstractPackagerMojo.java | 8 +++++--- .../boot/maven/AbstractRunMojo.java | 8 +++++--- .../boot/maven/BuildImageForkMojo.java | 10 +++++++++- .../boot/maven/BuildImageMojo.java | 5 +++++ .../boot/maven/BuildImageNoForkMojo.java | 10 +++++++++- .../boot/maven/BuildInfoMojo.java | 13 +++++++++---- .../boot/maven/ProcessAotMojo.java | 10 +++++++++- .../boot/maven/ProcessTestAotMojo.java | 17 ++++++++++------- .../boot/maven/RepackageMojo.java | 10 +++++++++- .../org/springframework/boot/maven/RunMojo.java | 10 +++++++++- .../springframework/boot/maven/StartMojo.java | 9 ++++++++- .../springframework/boot/maven/TestRunMojo.java | 10 +++++++++- 15 files changed, 106 insertions(+), 30 deletions(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 573bd1f6b96b..ac31b316671e 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -124,7 +124,7 @@ bom { ] } } - library("Maven Plugin Tools", "3.9.0") { + library("Maven Plugin Tools", "3.15.1") { group("org.apache.maven.plugin-tools") { modules = [ "maven-plugin-annotations" 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 beb84b636784..65dcca7ef237 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 @@ -15,12 +15,10 @@ dependencies { compileOnly("org.apache.maven.plugin-tools:maven-plugin-annotations") compileOnly("org.apache.maven:maven-core") { exclude(group: "javax.annotation", module: "javax.annotation-api") - exclude(group: "javax.inject", module: "javax.inject") } compileOnly("org.apache.maven:maven-plugin-api") { exclude(group: "javax.annotation", module: "javax.annotation-api") exclude(group: "javax.enterprise", module: "cdi-api") - exclude(group: "javax.inject", module: "javax.inject") } dockerTestImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support-docker")) @@ -90,6 +88,10 @@ ext { xsdVersion = versionElements[0] + "." + versionElements[1] } +tasks.named("checkCompileClasspathForProhibitedDependencies") { + permittedGroups = ["javax.inject"] +} + tasks.register("copySettingsXml", Copy) { from file("src/intTest/projects/settings.xml") into layout.buildDirectory.dir("generated-resources/settings") diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractAotMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractAotMojo.java index aae376b29656..8bbdca59a9a5 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractAotMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractAotMojo.java @@ -41,7 +41,6 @@ import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.shared.artifact.filter.collection.ArtifactsFilter; import org.apache.maven.toolchain.ToolchainManager; @@ -65,8 +64,7 @@ public abstract class AbstractAotMojo extends AbstractDependencyFilterMojo { /** * The toolchain manager to use to locate a custom JDK. */ - @Component - private ToolchainManager toolchainManager; + private final ToolchainManager toolchainManager; /** * Skip the execution. @@ -94,6 +92,10 @@ public abstract class AbstractAotMojo extends AbstractDependencyFilterMojo { @Parameter(property = "spring-boot.aot.compilerArguments") private String compilerArguments; + protected AbstractAotMojo(ToolchainManager toolchainManager) { + this.toolchainManager = toolchainManager; + } + /** * Return Maven execution session. * @return session diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java index ffc0848a1e45..dc4ace66871e 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractPackagerMojo.java @@ -31,7 +31,6 @@ import org.apache.maven.execution.MavenSession; import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.project.MavenProjectHelper; @@ -81,8 +80,7 @@ public abstract class AbstractPackagerMojo extends AbstractDependencyFilterMojo * Maven project helper utils. * @since 1.0.0 */ - @Component - protected MavenProjectHelper projectHelper; + protected final MavenProjectHelper projectHelper; /** * The name of the main class. If not specified the first compiled class found that @@ -128,6 +126,10 @@ public abstract class AbstractPackagerMojo extends AbstractDependencyFilterMojo @Parameter private Layers layers = new Layers(); + protected AbstractPackagerMojo(MavenProjectHelper projectHelper) { + this.projectHelper = projectHelper; + } + /** * Return the type of archive that should be packaged by this MOJO. * @return {@code null}, indicating a layout type will be chosen based on the original diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractRunMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractRunMojo.java index 0862960283dd..0595d130c409 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractRunMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/AbstractRunMojo.java @@ -33,7 +33,6 @@ import org.apache.maven.model.Resource; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.project.MavenProject; import org.apache.maven.toolchain.ToolchainManager; @@ -76,8 +75,7 @@ public abstract class AbstractRunMojo extends AbstractDependencyFilterMojo { * * @since 2.3.0 */ - @Component - private ToolchainManager toolchainManager; + private final ToolchainManager toolchainManager; /** * Add maven resources to the classpath directly, this allows live in-place editing of @@ -205,6 +203,10 @@ public abstract class AbstractRunMojo extends AbstractDependencyFilterMojo { @Parameter(property = "spring-boot.run.skip", defaultValue = "false") private boolean skip; + protected AbstractRunMojo(ToolchainManager toolchainManager) { + this.toolchainManager = toolchainManager; + } + @Override public void execute() throws MojoExecutionException, MojoFailureException { if (this.skip) { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageForkMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageForkMojo.java index 9ade9bc3774a..23a6da6bb90f 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageForkMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageForkMojo.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. @@ -16,10 +16,13 @@ package org.springframework.boot.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.Execute; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.project.MavenProjectHelper; /** * Package an application into an OCI image using a buildpack, forking the lifecycle to @@ -36,4 +39,9 @@ @Execute(phase = LifecyclePhase.PACKAGE) public class BuildImageForkMojo extends BuildImageMojo { + @Inject + public BuildImageForkMojo(MavenProjectHelper projectHelper) { + super(projectHelper); + } + } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageMojo.java index 503b23e7472f..16e8115fa99a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageMojo.java @@ -33,6 +33,7 @@ import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.logging.Log; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.MavenProjectHelper; import org.springframework.boot.buildpack.platform.build.AbstractBuildLog; import org.springframework.boot.buildpack.platform.build.BuildLog; @@ -219,6 +220,10 @@ public abstract class BuildImageMojo extends AbstractPackagerMojo { @Parameter private LayoutFactory layoutFactory; + protected BuildImageMojo(MavenProjectHelper projectHelper) { + super(projectHelper); + } + /** * Return the type of archive that should be used when building the image. * @return the value of the {@code layout} parameter, or {@code null} if the parameter diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageNoForkMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageNoForkMojo.java index 495c52347645..548aa1217ce1 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageNoForkMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildImageNoForkMojo.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. @@ -16,9 +16,12 @@ package org.springframework.boot.maven; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.project.MavenProjectHelper; /** * Package an application into an OCI image using a buildpack, but without forking the @@ -33,4 +36,9 @@ requiresDependencyCollection = ResolutionScope.COMPILE_PLUS_RUNTIME) public class BuildImageNoForkMojo extends BuildImageMojo { + @Inject + public BuildImageNoForkMojo(MavenProjectHelper projectHelper) { + super(projectHelper); + } + } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java index 9d8319a7025f..4ff0414bcc6a 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/BuildInfoMojo.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. @@ -23,11 +23,12 @@ import java.util.List; import java.util.Map; +import javax.inject.Inject; + import org.apache.maven.execution.MavenSession; import org.apache.maven.plugin.AbstractMojo; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; @@ -49,8 +50,7 @@ @Mojo(name = "build-info", defaultPhase = LifecyclePhase.GENERATE_RESOURCES, threadSafe = true) public class BuildInfoMojo extends AbstractMojo { - @Component - private BuildContext buildContext; + private final BuildContext buildContext; /** * The Maven session. @@ -104,6 +104,11 @@ public class BuildInfoMojo extends AbstractMojo { @Parameter(property = "spring-boot.build-info.skip", defaultValue = "false") private boolean skip; + @Inject + public BuildInfoMojo(BuildContext buildContext) { + this.buildContext = buildContext; + } + @Override public void execute() throws MojoExecutionException, MojoFailureException { if (this.skip) { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessAotMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessAotMojo.java index ef16eea0ae48..ff4affa46aa0 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessAotMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessAotMojo.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. @@ -21,10 +21,13 @@ import java.util.ArrayList; import java.util.List; +import javax.inject.Inject; + import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.toolchain.ToolchainManager; import org.springframework.util.ObjectUtils; @@ -86,6 +89,11 @@ public class ProcessAotMojo extends AbstractAotMojo { @Parameter private String[] profiles; + @Inject + public ProcessAotMojo(ToolchainManager toolchainManager) { + super(toolchainManager); + } + @Override protected void executeAot() throws Exception { if (this.project.getPackaging().equals("pom")) { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessTestAotMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessTestAotMojo.java index efc0ba4f92ee..b0872da0e541 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessTestAotMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/ProcessTestAotMojo.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. @@ -28,17 +28,18 @@ import java.util.Set; import java.util.stream.Collectors; +import javax.inject.Inject; + import org.apache.maven.RepositoryUtils; import org.apache.maven.artifact.Artifact; import org.apache.maven.artifact.DefaultArtifact; import org.apache.maven.artifact.handler.DefaultArtifactHandler; -import org.apache.maven.artifact.resolver.ResolutionErrorHandler; import org.apache.maven.plugin.MojoExecutionException; -import org.apache.maven.plugins.annotations.Component; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.toolchain.ToolchainManager; import org.eclipse.aether.RepositorySystem; import org.eclipse.aether.collection.CollectRequest; import org.eclipse.aether.resolution.ArtifactResult; @@ -103,11 +104,13 @@ public class ProcessTestAotMojo extends AbstractAotMojo { @Parameter(defaultValue = "${project.build.directory}/spring-aot/main/classes", required = true) private File generatedClasses; - @Component - private RepositorySystem repositorySystem; + private final RepositorySystem repositorySystem; - @Component - private ResolutionErrorHandler resolutionErrorHandler; + @Inject + public ProcessTestAotMojo(ToolchainManager toolchainManager, RepositorySystem repositorySystem) { + super(toolchainManager); + this.repositorySystem = repositorySystem; + } @Override protected void executeAot() throws Exception { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java index 1808a6380d40..588df73e9a70 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RepackageMojo.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. @@ -23,6 +23,8 @@ import java.util.Properties; import java.util.regex.Pattern; +import javax.inject.Inject; + import org.apache.maven.artifact.Artifact; import org.apache.maven.model.Dependency; import org.apache.maven.plugin.MojoExecutionException; @@ -31,6 +33,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.project.MavenProjectHelper; import org.springframework.boot.loader.tools.DefaultLaunchScript; import org.springframework.boot.loader.tools.LaunchScript; @@ -179,6 +182,11 @@ public class RepackageMojo extends AbstractPackagerMojo { @Parameter private LayoutFactory layoutFactory; + @Inject + public RepackageMojo(MavenProjectHelper projectHelper) { + super(projectHelper); + } + /** * Return the type of archive that should be packaged by this MOJO. * @return the value of the {@code layout} parameter, or {@code null} if the parameter diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java index fc9b9c440333..8b3eab4c033e 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/RunMojo.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. @@ -20,6 +20,8 @@ import java.util.List; import java.util.Map; +import javax.inject.Inject; + import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Execute; @@ -27,6 +29,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.toolchain.ToolchainManager; import org.springframework.boot.loader.tools.RunProcess; @@ -58,6 +61,11 @@ public class RunMojo extends AbstractRunMojo { @Parameter(property = "spring-boot.run.useTestClasspath", defaultValue = "false") private Boolean useTestClasspath; + @Inject + public RunMojo(ToolchainManager toolchainManager) { + super(toolchainManager); + } + @Override protected RunArguments resolveJvmArguments() { RunArguments jvmArguments = super.resolveJvmArguments(); diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java index d7fda1688c92..85406da402aa 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/StartMojo.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. @@ -24,6 +24,7 @@ import java.util.Map; import java.util.concurrent.Callable; +import javax.inject.Inject; import javax.management.MBeanServerConnection; import javax.management.ReflectionException; import javax.management.remote.JMXConnector; @@ -34,6 +35,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.toolchain.ToolchainManager; import org.springframework.boot.loader.tools.RunProcess; @@ -91,6 +93,11 @@ public class StartMojo extends AbstractRunMojo { @Parameter(property = "spring-boot.run.useTestClasspath", defaultValue = "false") private Boolean useTestClasspath; + @Inject + public StartMojo(ToolchainManager toolchainManager) { + super(toolchainManager); + } + @Override protected void run(JavaProcessExecutor processExecutor, File workingDirectory, List args, Map environmentVariables) throws MojoExecutionException, MojoFailureException { diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/TestRunMojo.java b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/TestRunMojo.java index 5c41d9a3b75b..3c129dcd501d 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/TestRunMojo.java +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/src/main/java/org/springframework/boot/maven/TestRunMojo.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. @@ -21,6 +21,8 @@ import java.util.List; import java.util.Map; +import javax.inject.Inject; + import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.Execute; @@ -28,6 +30,7 @@ import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.toolchain.ToolchainManager; import org.springframework.boot.loader.tools.RunProcess; @@ -61,6 +64,11 @@ public class TestRunMojo extends AbstractRunMojo { @Parameter(defaultValue = "${project.build.testOutputDirectory}", required = true) private File testClassesDirectory; + @Inject + public TestRunMojo(ToolchainManager toolchainManager) { + super(toolchainManager); + } + @Override protected List getClassesDirectories() { ArrayList classesDirectories = new ArrayList<>(super.getClassesDirectories()); From 963ca3215f6b4001f48f1ea0e49c82b19067f8f0 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:20:08 +0100 Subject: [PATCH 168/711] Upgrade to Maven Resolver 1.9.23 Closes gh-45906 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index ac31b316671e..10ecfbc8fda0 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -131,7 +131,7 @@ bom { ] } } - library("Maven Resolver", "1.9.14") { + library("Maven Resolver", "1.9.23") { group("org.apache.maven.resolver") { modules = [ "maven-resolver-api", From af8e998786d8f9edfd6cb125e29eaca8e2becbcc Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:20:12 +0100 Subject: [PATCH 169/711] Upgrade to Maven Shade Plugin 3.6.0 Closes gh-45907 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 10ecfbc8fda0..5fddb0e6836b 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -144,7 +144,7 @@ bom { ] } } - library("Maven Shade Plugin", "3.5.0") { + library("Maven Shade Plugin", "3.6.0") { group("org.apache.maven.plugins") { modules = [ "maven-shade-plugin" From 092e9e7f88916060f3c3bea9e8a1b777a0721d61 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:20:16 +0100 Subject: [PATCH 170/711] Upgrade to MockK 1.14.2 Closes gh-45908 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 5fddb0e6836b..c9bf9f691f75 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -151,7 +151,7 @@ bom { ] } } - library("MockK", "1.13.5") { + library("MockK", "1.14.2") { group("io.mockk") { modules = [ "mockk" From 9e62b8792735912c1db42262833242a96d66d848 Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:20:20 +0100 Subject: [PATCH 171/711] Upgrade to OpenTelemetry Logback Appender 2.16.0-alpha Closes gh-45909 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index c9bf9f691f75..6545484121d0 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -172,7 +172,7 @@ bom { ] } } - library("OpenTelemetry Logback Appender", "2.7.0-alpha") { + library("OpenTelemetry Logback Appender", "2.16.0-alpha") { group("io.opentelemetry.instrumentation") { modules = [ "opentelemetry-logback-appender-1.0" From 7b28021f4226f9d539b2c3d7c8b3c8e60cc178de Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Thu, 12 Jun 2025 09:20:25 +0100 Subject: [PATCH 172/711] Upgrade to Simple JNDI 0.25.0 Closes gh-45910 --- spring-boot-project/spring-boot-parent/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spring-boot-project/spring-boot-parent/build.gradle b/spring-boot-project/spring-boot-parent/build.gradle index 6545484121d0..c2cc4f01393f 100644 --- a/spring-boot-project/spring-boot-parent/build.gradle +++ b/spring-boot-project/spring-boot-parent/build.gradle @@ -193,7 +193,7 @@ bom { ] } } - library("Simple JNDI", "0.23.0") { + library("Simple JNDI", "0.25.0") { group("com.github.h-thurow") { modules = [ "simple-jndi" From 23afabc5fda234f3c985f962e249bd43745c0434 Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 11 Jun 2025 15:29:26 -0700 Subject: [PATCH 173/711] Allow override of ConfigData.Options Update `ConfigDataEnvironmentUpdateListener` to allow Spring Cloud to override the actual ConfigData.Options that will be used for any specific contributor. Closes gh-42932 --- .../boot/context/config/ConfigData.java | 3 +- .../context/config/ConfigDataEnvironment.java | 4 +- .../ConfigDataEnvironmentContributor.java | 4 +- .../ConfigDataEnvironmentContributors.java | 21 +++++--- .../ConfigDataEnvironmentUpdateListener.java | 17 +++++- ...ConfigDataEnvironmentContributorTests.java | 13 ++--- ...onfigDataEnvironmentContributorsTests.java | 53 ++++++++++++------- ...nfigDataEnvironmentPostProcessorTests.java | 50 +++++++++++++---- .../config/ConfigDataEnvironmentTests.java | 8 +-- 9 files changed, 123 insertions(+), 50 deletions(-) diff --git a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigData.java b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigData.java index 31dde9c83ea2..be2d7ad51349 100644 --- a/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigData.java +++ b/spring-boot-project/spring-boot/src/main/java/org/springframework/boot/context/config/ConfigData.java @@ -239,7 +239,8 @@ public Options with(Option option) { } private Options copy(Consumer> processor) { - EnumSet