spring-projects/spring-boot
46.5
Weak · 5 August 2026
365.3k
lines of production code
Java
primary language
4
measurements over time
What this system is
This system is a comprehensive application framework and build tooling suite designed to streamline the creation, configuration, and management of Spring Boot applications. It provides extensive auto-configuration for diverse technologies including databases, messaging, and cloud platforms, while offering robust build-time support for Maven, Gradle, and Ant. The framework also includes a command-line interface, structured logging, and deep integration with containerization and testing utilities.
How it got here
2013–2025 — Build system modernization and infrastructure expansion
330 changes.
This period was defined by a comprehensive overhaul of the project's build infrastructure, migrating to a modular Gradle-based system with convention plugins and automated dependency management. Concurrently, the framework expanded its ecosystem support by introducing auto-configuration for numerous new modules, including Spring Batch 6, Docker Compose integration, and various Spring Data stores, while also adding significant CLI and actuator capabilities.
2026 — gRPC and Spring Batch integrations
10 changes.
This period focused on adding comprehensive auto-configuration and test support for Spring gRPC clients and servers, including security and observation features. It also introduced Spring Batch support for MongoDB and improved HTTP message converter configuration.
Features
Actuator endpoints for managing HTTP sessions
A new \sessions\ actuator endpoint has been added, allowing users to view, retrieve, and delete HTTP sessions. This feature is exposed via \SessionsEndpoint\ for servlet-based applications and \ReactiveSessionsEndpoint\ for reactive applications, enabling programmatic session management through the actuator API.
module/spring-boot-session · high confidence
Add ActiveMQ auto-configuration and service connection support
Added auto-configuration for ActiveMQ, including \ActiveMQAutoConfiguration\ and related classes to manage \ConnectionFactory\ beans. Introduced \ActiveMQConnectionDetails\ to standardize connection details, enabling automatic wiring of ActiveMQ brokers via Docker Compose and Testcontainers. Added integration tests for both Docker Compose and Testcontainers scenarios to verify connection details are correctly resolved.
module/spring-boot-activemq · high confidence
Add ActiveMQ smoke test with JMS producer/consumer demo
A new smoke test for ActiveMQ has been added to the Spring Boot project. This includes a minimal Spring Boot application that configures a JMS queue, a producer component that sends messages to the queue, and a consumer component that listens for and prints those messages. The test also includes integration tests that verify the message flow using Testcontainers. This change introduces the necessary Java classes and configuration to validate ActiveMQ integration.
smoke-test/spring-boot-smoke-test-activemq · medium confidence
Add Ant tasks for finding main class and building executable JARs
The Spring Boot Ant library now includes new Ant tasks to support building Spring Boot applications with Apache Ant. A \findmainclass\ task is provided to locate the main class, and an \exejar\ macro is introduced to create executable Spring Boot JARs, handling classpath and resource embedding automatically.
build-plugin/spring-boot-antlib · high confidence
Add AspectJ-based smoke test for Spring Boot AOP
A new smoke test has been added to validate AspectJ support in Spring Boot. The test includes a sample application that uses Spring AOP to monitor service methods, logging access via an aspect. The test verifies that the application correctly outputs the default message and respects command-line overrides for configuration properties.
smoke-test/spring-boot-smoke-test-aspectj · high confidence
Add FreeMarker smoke test with custom error templates
A new smoke test module for Spring Boot's FreeMarker integration has been added. It includes a sample application with a welcome controller and templates, along with integration tests that verify rendering the welcome page, handling 404 errors with a custom template, and displaying specific error pages for HTTP 507 (Insufficient Storage) responses.
smoke-test/spring-boot-smoke-test-web-freemarker · high confidence
Add Groovy template smoke test with in-memory message repository
A new smoke test module for Spring Boot web applications using Groovy templates has been added. This includes an in-memory message repository implementation, a Spring MVC controller for managing messages, and supporting classes like the Message model and repository interface. The test application demonstrates basic CRUD operations and form handling, providing a concrete example of how to structure a Spring Boot application with Groovy templates.
smoke-test/spring-boot-smoke-test-web-groovy-templates · high confidence
Add HATEOAS smoke test with HAL link support
A new smoke test for HATEOAS has been added, introducing a sample Spring Boot application that exposes customer resources with HAL-style links. The test verifies that the application correctly returns JSON with \_links metadata and respects content negotiation headers, ensuring the HATEOAS integration functions as expected in a live environment.
smoke-test/spring-boot-smoke-test-hateoas · high confidence
Add JSON-B auto-configuration and test support
Spring Boot now provides auto-configuration for the Jakarta JSON-B (JSR 367) API, automatically creating a \Jsonb\ bean when the necessary classes and resources are present. For testing, the \@JsonTest\ and \@SpringBootTest\ annotations now support injecting a \JsonbTester\ to verify JSON serialization and deserialization, with corresponding auto-configuration classes and integration tests added to the \spring-boot-jsonb\ module.
module/spring-boot-jsonb · high confidence
Add JSP-based smoke test module
A new smoke-test module for Spring Boot's JSP support has been added. It includes a sample application with a controller and JSP views, along with integration tests that verify JSP rendering and custom error page handling.
smoke-test/spring-boot-smoke-test-web-jsp · high confidence
Add Jakarta Validation auto-configuration
The module now includes auto-configuration for Jakarta Validation, introducing a \ValidationAutoConfiguration\ that registers a \LocalValidatorFactoryBean\ as the default validator. A \PrimaryDefaultValidatorPostProcessor\ ensures the auto-configured validator is marked as primary when no other Spring \Validator\ is flagged as primary. Additionally, a \JakartaValidationBackgroundPreinitializer\ is registered to pre-initialize the Jakarta validation infrastructure at startup, and a new \ValidationConfigurationCustomizer\ interface allows users to customize the validation configuration.
module/spring-boot-validation · high confidence
Add Jetty smoke test for HTTP header size limits
A new smoke test for the Jetty embedded server has been added to validate behavior around HTTP header size limits. The test suite verifies that the application correctly handles oversized request and response headers, ensuring that the configured limits for \server.max-http-request-header-size\ and \server.jetty.max-http-response-header-size\ are enforced as expected.
smoke-test/spring-boot-smoke-test-jetty · high confidence
Add Jetty-based WebSocket smoke tests for echo, reverse, and snake endpoints
The smoke-test/spring-boot-smoke-test-websocket-jetty module now includes a complete set of Java and HTML files that implement and test WebSocket functionality using the Jetty server. This includes the main application class, client handlers, and service interfaces for echo, reverse, and snake games, along with corresponding HTML pages for the user interface. The test class verifies that messages are correctly echoed, reversed, and processed in the multiplayer snake game, ensuring the WebSocket endpoints function as expected in a Jetty environment.
smoke-test/spring-boot-smoke-test-websocket-jetty · high confidence
Add LDAP auto-configuration and embedded LDAP support
Spring Boot now provides auto-configuration for LDAP connections via the new \LdapAutoConfiguration\ and \EmbeddedLdapAutoConfiguration\ classes, enabling automatic setup of \LdapTemplate\ and embedded LDAP servers. The change introduces \LdapProperties\ and \EmbeddedLdapProperties\ to externalize configuration, and adds a \LdapHealthIndicator\ for health checks. Additionally, support for connecting to LDAP services in Docker Compose and Testcontainers environments is added through new \DockerComposeConnectionDetailsFactory\ implementations for LLdap and OpenLDAP, along with corresponding integration tests.
module/spring-boot-ldap · high confidence
Add Mustache-based smoke test for web applications
A new smoke test module for Spring Boot web applications using the Mustache template engine has been added. This includes a sample application with a welcome controller, custom error templates for 503 and 5xx status codes, and integration tests verifying template rendering and error handling.
smoke-test/spring-boot-smoke-test-web-mustache · high confidence
Add OpenTelemetry tracing support with configurable sampling, span limits, and propagation
Spring Boot now provides a dedicated OpenTelemetry tracing module that introduces a new \OpenTelemetryTracingAutoConfiguration\ to manage the OpenTelemetry SDK. Users can configure the trace sampler (e.g., \TRACE\_ID\_RATIO\, \ALWAYS\_ON\), set span limits for attributes, events, and links, and select propagation formats (B3, W3C). The update also adds support for SSL bundles for OTLP trace exports and includes integration tests for Docker Compose and Testcontainers environments.
module/spring-boot-micrometer-tracing-opentelemetry · high confidence
Add Quartz Scheduler integration and actuator endpoint
Adds auto-configuration for the Quartz Scheduler, supporting both in-memory and JDBC-backed job stores with automatic database initialization. It also introduces a new \quartz\ actuator endpoint that exposes scheduler status and allows triggering jobs via the web interface.
module/spring-boot-quartz · high confidence
Add R2DBC smoke test with Liquibase schema initialization
A new smoke test module for Spring Boot R2DBC with Liquibase has been added. This includes a City entity, a reactive repository, and a test that verifies database initialization via Liquibase changelog, ensuring the application can connect to a PostgreSQL container and execute schema changes.
smoke-test/spring-boot-smoke-test-data-r2dbc-liquibase · high confidence
Add Reactor integration with auto-configuration and virtual thread support
Spring Boot now provides automatic configuration for Project Reactor. A new \ReactorEnvironmentPostProcessor\ enables the Reactor debug agent and configures the Bounded Elastic Scheduler to use Virtual Threads on JVM 21+. The \ReactorAutoConfiguration\ enables automatic context propagation via the \spring.reactor.context-propagation\ property, which can be set to \auto\ or \limited\. This includes new configuration properties for Reactor integration.
module/spring-boot-reactor · high confidence
Add SAML 2.0 relying party auto-configuration
Spring Boot now provides auto-configuration for Spring Security's SAML 2.0 support. This introduces \Saml2RelyingPartyAutoConfiguration\ and related components that automatically configure a \RelyingPartyRegistrationRepository\ based on \spring.security.saml2.relyingparty\ properties. Users can define relying party registrations via configuration, enabling SAML 2.0 authentication and logout flows without manual bean setup.
module/spring-boot-security-saml2 · high confidence
Add SAML 2.0 smoke test for Spring Boot
A new smoke test has been added for the SAML 2.0 service provider, including a sample application, controller, and integration tests. The test verifies that unauthenticated requests are redirected to a login page and that the login page presents options for 'simplesamlphp' and 'okta' asserting parties.
smoke-test/spring-boot-smoke-test-saml2-service-provider · high confidence
Add SSL context and key/certificate parsing utilities for Docker buildpack platform
Introduced new classes in the \org.springframework.boot.buildpack.platform.docker.ssl\ package to manage SSL contexts and parse PEM-encoded certificates and private keys. \SslContextFactory\ builds an \SSLContext\ from \key.pem\, \cert.pem\, and \ca.pem\ files in a specified directory. \KeyStoreFactory\ creates Java \KeyStore\ instances from certificate and key files. \PemCertificateParser\ and \PemPrivateKeyParser\ handle the parsing of X.509 certificates and PKCS/SEC1/EC private keys in PEM format, supporting encrypted keys and various key types (RSA, EC, DSA, EdDSA, XDH). These utilities enable the buildpack platform to securely handle SSL/TLS configurations for Docker-related operations.
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/ssl · high confidence
Add Spring Batch 6 auto-configuration
The Spring Boot batch module now provides auto-configuration for Spring Batch 6. This includes a new \BatchAutoConfiguration\ that sets up an in-memory batch infrastructure, a \BatchJobLauncherAutoConfiguration\ that launches jobs on startup (configurable via \spring.batch.job.enabled\ and \spring.batch.job.name\), and a \BatchObservationAutoConfiguration\ for Micrometer-based tracing and metrics. The \JobLauncherApplicationRunner\ and \JobExecutionExitCodeGenerator\ classes handle job execution and exit code generation, while \BatchProperties\ exposes configuration options. Tests have been added to verify the new auto-configuration behavior.
(repo-wide) · high confidence
Add Spring Batch smoke tests for in-memory and JDBC scenarios
Added new smoke-test modules for Spring Batch, including \spring-boot-smoke-test-batch\ and \spring-boot-smoke-test-batch-jdbc\. These modules provide end-to-end validation of batch job execution using in-memory and JDBC-based infrastructure respectively, ensuring compatibility with Spring Batch 6.0.0-RC1.
smoke-test/spring-boot-smoke-test-batch · high confidence
Add Spring Boot Logback smoke test with profile and console logging controls
A new smoke test for Spring Boot's Logback integration has been added, providing a sample application that logs debug and trace messages. The test suite verifies that log levels can be adjusted via Spring profiles (e.g., enabling TRACE in the 'staging' profile) and that console logging can be disabled using the \logging.console.enabled\ property.
smoke-test/spring-boot-smoke-test-logback · medium confidence
Add Spring Boot Web Services smoke test
A new smoke test for Spring Boot Web Services has been added to the \spring-boot-smoke-test-webservices\ module. This includes a sample application with a \HolidayEndpoint\ and \WebServiceConfig\, a \HumanResourceService\ interface with a \StubHumanResourceService\ implementation, and associated XSD schemas. Two test classes (\SampleWsApplicationTests\ and \WebServiceServerTestSampleWsApplicationTests\) verify the web service functionality, with the latter using \@WebServiceServerTest\ and \MockWebServiceClient\ to validate request handling.
smoke-test/spring-boot-smoke-test-webservices · high confidence
Add Spring Boot smoke test for GraphQL with security and controller coverage
The smoke-test/spring-boot-smoke-test-graphql module now includes a complete set of new Java and resource files that implement a sample Spring Boot application for testing GraphQL endpoints. This includes controllers (GreetingController, ProjectController), services (GreetingService), a security configuration (SecurityConfig) that enforces method-level security via @PreAuthorize, and a GraphQL schema (schema.graphqls). Corresponding unit and integration tests (GreetingControllerTests, ProjectControllerTests, SampleGraphQlApplicationTests) verify that the GraphQL endpoints function correctly and that security constraints are properly applied.
smoke-test/spring-boot-smoke-test-graphql · high confidence
Add Spring Boot smoke test for JPA with city and hotel domain models
A new smoke test module, \smoke-test/spring-boot-smoke-test-data-jpa\, has been added to validate Spring Boot's JPA auto-configuration. This includes a complete domain model (City, Hotel, Review, Rating) and corresponding Spring Data JPA repositories and services. The test application exposes a simple HTTP endpoint that queries the database, ensuring that entity mapping, repository generation, and transaction management function correctly in a Spring Boot context.
smoke-test/spring-boot-smoke-test-data-jpa · high confidence
Add Spring Boot smoke test for JPA/hibernate integration
A new smoke test for Spring Boot with Hibernate has been added to the project. This includes the application entry point, JPA entity models (Note and Tag) with nullability annotations, repository interfaces and implementations, a web controller to display notes, and a FreeMarker template for rendering the home page. The test suite verifies that the application starts correctly, the repositories return the expected number of records, and the home page displays the correct number of notes.
smoke-test/spring-boot-smoke-test-hibernate · high confidence
Add Spring Boot smoke test for JSP-based web applications
A new smoke test has been added for the Spring Boot Tomcat JSP module. This includes a sample application featuring a JSP-based welcome page, a REST controller with exception handling, and integration tests that verify the rendering of JSP views and the behavior of the TestRestTemplate.
smoke-test/spring-boot-smoke-test-tomcat-jsp · medium confidence
Add Spring Boot smoke test for LDAP data access
A new smoke test has been added for Spring Boot's LDAP data access capabilities. The test includes a Person entity, a PersonRepository interface, and a sample application that queries an embedded LDAP directory. The test verifies that the application can successfully retrieve and display person records, ensuring the integration between Spring Data LDAP and the embedded LDAP server functions correctly.
smoke-test/spring-boot-smoke-test-data-jdbc, smoke-test/spring-boot-smoke-test-data-ldap · high confidence
Add Spring Boot smoke test for XML-based configuration
A new smoke test has been added for Spring Boot's XML configuration support. The change introduces a sample application that loads beans from an XML context file, including a service that resolves a placeholder in the bean class name. Tests verify that the application runs correctly with default settings and that XML-defined beans with placeholder-based class names are resolved as expected.
smoke-test/spring-boot-smoke-test-xml · high confidence
Add Spring Boot smoke test for custom web security configuration
A new smoke test module named spring-boot-smoke-test-web-secure-custom has been added to validate a Spring Boot application that uses custom web security configurations. The test ensures that unauthenticated requests are redirected to a login page, the login page renders correctly, and successful authentication redirects to the home page.
smoke-test/spring-boot-smoke-test-web-secure-custom · high confidence
Add Spring Boot smoke test for environment-based configuration properties
A new smoke test has been added to validate that Spring Boot can import configuration values from environment variables. The change introduces a test configuration class, FromEnvConfigurationProperties, which maps environment variables to application properties, and a corresponding unit test, FromEnvConfigurationPropertiesTests, which verifies that the imported values are correctly bound. This addition supports the broader capability of loading configuration from environment variables in Spring Boot applications.
smoke-test/spring-boot-smoke-test-config · high confidence
Add Spring Boot smoke test for headless actuator application
A new smoke test has been added for the Spring Boot actuator no-web scenario. This includes a headless application entry point, a service component with nullability annotations, configuration properties, and integration tests to verify the application context loads correctly without a web server.
smoke-test/spring-boot-smoke-test-actuator-noweb · high confidence
Add Spring Boot smoke test for secure application
A new smoke test has been added for the Spring Boot secure application. This includes the main application class, a service with secured endpoints, and integration tests that verify authentication and authorization behavior, such as access denial for unauthenticated requests and access control for specific roles.
smoke-test/spring-boot-smoke-test-secure · high confidence
Add Spring Boot smoke-test for simple application structure
A new smoke-test module named spring-boot-smoke-test-simple has been added to the project, providing a minimal Spring Boot application example. This includes the main application class, configuration properties, and a service component, along with unit tests that verify context loading and command-line argument handling. The test suite confirms that the application correctly processes default settings and command-line overrides for properties like 'test.name' and 'test.duration'.
smoke-test/spring-boot-smoke-test-simple · high confidence
Add Spring Data Elasticsearch auto-configuration and health indicators
This change introduces auto-configuration for Spring Data Elasticsearch, including \DataElasticsearchAutoConfiguration\ for setting up \ElasticsearchTemplate\ and \ReactiveElasticsearchTemplate\ beans, along with dedicated auto-configurations for both synchronous (\DataElasticsearchRepositoriesAutoConfiguration\) and reactive (\DataElasticsearchReactiveRepositoriesAutoConfiguration\) repositories. It also adds a reactive health indicator (\DataElasticsearchReactiveHealthIndicator\) to monitor the status of the Elasticsearch cluster, exposing cluster health details such as node count and shard status via the \/actuator/health\ endpoint.
(repo-wide) · high confidence
Add Spring Integration smoke test for parent context
Added a new smoke test for the Spring Boot parent context that exercises a Spring Integration flow. The test includes a parent application that reads files from an input directory, processes them via a message endpoint, and writes the results to an output directory. A producer application is also included to generate test data. The test verifies that the integration flow correctly processes and transforms the input files.
(repo-wide) · high confidence
Add Spring Integration smoke test with nullability annotations
Added a new Spring Integration smoke test module that includes a sample application, endpoint, and producer to validate integration flows. The implementation uses Spring Integration 7.0.0-RC1 and includes nullability annotations (via org.jspecify.annotations) on the service properties and package-level null-marking for improved static analysis.
smoke-test/spring-boot-smoke-test-integration · medium confidence
Add Spring Pulsar smoke test with Testcontainers
A new smoke test for Spring Pulsar has been added to the project. The test uses Testcontainers (version 2.0.1) to spin up a Pulsar container, verifying that the application can produce and consume messages. The test configuration includes nullability annotations and a property setting the consumer subscription initial position to 'earliest'.
smoke-test/spring-boot-smoke-test-pulsar · high confidence
Add Spring Security JDBC smoke test
A new smoke test has been added for the Spring Boot web secure JDBC application. The test verifies the security configuration by checking that unauthenticated requests are redirected to the login page, the login page renders correctly, and that valid credentials allow access to the home page.
smoke-test/spring-boot-smoke-test-web-secure-jdbc · high confidence
Add Spring Security method-level security smoke test
Added a new smoke test module, spring-boot-smoke-test-web-method-security, which validates method-level security enforcement in a web application. The test configures an in-memory user store, secures a home page endpoint with @Secured, and verifies that unauthenticated access is denied, login redirects correctly, and management endpoints are protected.
smoke-test/spring-boot-smoke-test-web-method-security · high confidence
Add Spring gRPC client auto-configuration and type-safe properties
Spring Boot now provides auto-configuration for gRPC clients, introducing the \spring.grpc.client\ configuration prefix with type-safe properties for channels, load balancing, health checks, and SSL. The framework automatically configures channel factories (Netty, In-Process) and applies user-defined customizers. Additionally, observation support is enabled by default, wiring Micrometer's \ObservationGrpcClientInterceptor\ for client-side tracing and metrics.
module/spring-boot-grpc-client · high confidence
Add Spring gRPC server and client security support
Added new smoke tests for Spring Boot gRPC servers with OAuth and secure authentication. The \spring-boot-smoke-test-grpc-server-oauth\ module now includes a gRPC server configured with OAuth2 resource server and authorization server security, along with client-side OAuth2 token handling. The \spring-boot-smoke-test-grpc-server-secure\ module adds a gRPC server with HTTP basic authentication and in-memory user details, demonstrating role-based access control for gRPC methods. Both modules include corresponding test classes that verify authentication and authorization behavior for gRPC endpoints.
smoke-test/spring-boot-smoke-test-grpc-server-oauth · high confidence
Add Spring gRPC server support for servlet-based applications
Spring Boot now provides auto-configuration for running gRPC servers within a servlet container. This includes registering the gRPC servlet via \GrpcServletRegistration\, configuring server builders with properties, and supporting customizers, codecs, and observation interceptors. The configuration is conditionally applied when \spring.grpc.server.enabled\ is true (default) and a \GrpcServerFactory\ is not already present, ensuring it does not conflict with existing network-based gRPC server implementations.
module/spring-boot-grpc-server · high confidence
Add Spring gRPC smoke tests for client and server
Added smoke-test modules for Spring Boot gRPC integration: a client-side test application that uses @ImportGrpcClients to call a gRPC service, and a server-side test application that exposes a gRPC service with a standard exception handler. The changes include the application classes, proto definitions, service implementations, and JUnit 5 integration tests that verify successful calls, error handling for invalid arguments, and internal error mapping.
smoke-test/spring-boot-smoke-test-grpc-client-test, smoke-test/spring-boot-smoke-test-grpc-server-test, smoke-test/spring-boot-smoke-test-grpc-server-netty-shaded, smoke-test/spring-boot-smoke-test-grpc-server-servlet · high confidence
Add Spring gRPC test support
Added new auto-configuration classes and annotations to support testing gRPC applications with an in-process transport. The \AutoConfigureTestGrpcTransport\ annotation enables test in-process gRPC transport, while \TestGrpcTransportAutoConfiguration\ configures \TestGrpcServerFactory\ and \TestGrpcChannelFactory\ beans. The \GrpcPortInfoApplicationContextInitializer\ sets the \local.grpc.server.port\ property, and the \LocalGrpcServerPort\ annotation provides a convenient way to inject the server port. Tests verify the correct behavior of these components.
module/spring-boot-grpc-test, smoke-test/spring-boot-smoke-test-grpc-server · high confidence
Add WebFlux smoke test for Spring Boot
A new smoke test module for WebFlux applications has been added. It includes a sample application with controllers and handlers, along with integration tests that verify standard HTTP endpoints, error handling, and actuator endpoints. The tests also validate the behavior of the WebTestClient in both embedded and running server environments, ensuring that the framework's reactive web stack functions correctly.
(repo-wide) · high confidence
Add WebSocket messaging auto-configuration with Jackson 3 support
The Spring Boot WebSocket module now includes a new \WebSocketMessagingAutoConfiguration\ that automatically configures message converters for WebSocket-based messaging. By default, it uses Jackson 3 (\tools.jackson.databind.json.JsonMapper\) for JSON serialization, while still supporting Jackson 2 (\com.fasterxml.jackson.databind.ObjectMapper\) via a deprecated configuration path. Users can explicitly choose between Jackson 3 and Jackson 2 using the \spring.websocket.messaging.preferred-json-mapper\ property. The configuration also ensures that the \stompWebSocketHandlerMapping\ bean is eagerly initialized to support lazy initialization scenarios.
module/spring-boot-websocket · high confidence
Add XML parsing utility for build scripts
A new \XmlDocument\ utility class has been added to the build source code. It provides a secure, pre-configured \DocumentBuilder\ for parsing XML content and files, with secure processing and DTD disallowed by default.
buildSrc/src/main/java/org/springframework/boot/build/xml · high confidence
Add actuator smoke-test application and integration tests
Added a new Spring Boot application for smoke-testing the actuator module, including a sample application with health indicators, info contributors, controllers, and legacy endpoints, along with a comprehensive suite of integration tests covering management port configuration, path mapping, CORS, and error handling.
smoke-test/spring-boot-smoke-test-actuator · high confidence
Add application availability and administration APIs
Introduces new APIs for managing and monitoring Spring Boot applications. The \org.springframework.boot.availability\ package adds \ApplicationAvailability\ and related classes (\LivenessState\, \ReadinessState\, \AvailabilityChangeEvent\) to expose the application's liveness and readiness states via events. Additionally, the \org.springframework.boot.admin\ package adds an MBean interface (\SpringApplicationAdminMXBean\) and its registrar to allow JMX-based control and monitoring of the running application, including methods to check readiness, identify embedded web containers, retrieve properties, and perform a graceful shutdown.
(repo-wide) · high confidence
Add auto-configuration and builder support for Spring Web Services
Introduces new auto-configuration for Spring Web Services, including \WebServicesAutoConfiguration\ which registers a \MessageDispatcherServlet\ and processes WSDL/XSD locations via a new \OnWsdlLocationsCondition\. It also adds a \WebServiceTemplateBuilder\ and \WebServiceMessageSenderFactory\ to simplify creating \WebServiceTemplate\ instances with HTTP-based message senders. Configuration is exposed through \spring.webservices\ properties, allowing users to customize the servlet path, load-on-startup, and init parameters.
module/spring-boot-webservices · high confidence
Add auto-configuration and integration tests for Hazelcast
Introduced auto-configuration for Hazelcast, including \HazelcastAutoConfiguration\ and related classes that create \HazelcastInstance\ beans based on configuration files or existing \ClientConfig\. Added integration tests for \HazelcastContainerConnectionDetailsFactory\ and \HazelcastDockerComposeConnectionDetailsFactory\ to verify connection details for Docker-based test containers and Docker Compose services. Included test resources such as \logback-test.xml\, \spring.properties\, and Docker Compose YAML files for testing.
module/spring-boot-hazelcast · high confidence
Add auto-configuration for JDBC-backed Spring Session
Spring Boot now automatically configures a JDBC-based session repository. The new \JdbcSessionAutoConfiguration\ registers a \JdbcIndexedSessionRepository\ and a database initializer to create the session table. Users can customize the session table name, cleanup cron expression, flush mode, and save mode via \spring.session.jdbc.\*\ properties. The auto-configuration ensures the session repository bean depends on the database initialization, and a dedicated detector ensures proper initialization ordering.
module/spring-boot-session-jdbc · high confidence
Add auto-configuration for JMS listener containers and client templates
Spring Boot now provides auto-configuration for JMS, introducing support for configuring \SimpleMessageListenerContainer\ and \DefaultJmsListenerContainerFactory\ via \spring.jms\ properties. Users can now control listener concurrency, session acknowledgment modes, and template behaviors (such as delivery mode, priority, and time-to-live) through configuration. Additionally, a \JmsPoolConnectionFactory\ can be enabled to manage connection pooling with configurable parameters like max connections and idle timeout. The change also includes a new \JmsHealthIndicator\ to monitor JMS connectivity via the \/actuator/health\ endpoint.
module/spring-boot-jms · high confidence
Add auto-configuration for Jackson 2
The spring-boot-jackson2 module now provides full auto-configuration for Jackson 2, including the registration of \ObjectMapper\, \JsonComponentModule\, and \JsonMixinModule\ beans. This enables automatic JSON serialization and deserialization support for applications using Jackson 2, with configuration properties available under \spring.jackson2\ and support for customizing the \ObjectMapper\ via \Jackson2ObjectMapperBuilderCustomizer\ beans.
module/spring-boot-jackson2 · high confidence
Add auto-configuration for Netty leak detection
The Spring Boot Netty module now includes auto-configuration for Netty's resource leak detection. Users can configure the leak detection level (DISABLED, SIMPLE, ADVANCED, or PARANOID) via the \spring.netty.leak-detection\ property, which is applied globally to the Netty library. The \NettyAutoConfiguration\ class is now final and its public members have been removed, while the configuration properties are exposed through \NettyProperties\ with nullability annotations.
module/spring-boot-netty · medium confidence
Add auto-configuration for RSocket messaging and server support
Spring Boot now provides automatic configuration for RSocket-based messaging and servers. This includes auto-configuration for the RSocket server and requester, with support for TCP and WebSocket transports, SSL, and message payload encoding/decoding via Jackson (including CBOR and JSON). Controller advice beans are automatically registered with the RSocket message handler, enabling consistent exception handling across RSocket endpoints.
module/spring-boot-rsocket · high confidence
Add classpath validation tasks to the build
The build now includes new Gradle tasks that enforce stricter classpath hygiene. CheckClasspathForConflicts detects duplicate classes or resources across the classpath. CheckClasspathForProhibitedDependencies blocks specific dependency groups (e.g., Jetty toolchain, Geronimo specs, JBoss spec, and certain javax groups) from appearing in the classpath. CheckClasspathForUnconstrainedDirectDependencies ensures that all direct dependencies are explicitly versioned. CheckClasspathForUnnecessaryExclusions identifies and flags exclusion rules that are no longer needed. These changes help prevent dependency conflicts and enforce consistent dependency management across the project.
buildSrc/src/main/java/org/springframework/boot/build/classpath · high confidence
Add initial jOOQ auto-configuration support
Introduces auto-configuration for jOOQ, including a \JooqAutoConfiguration\ that wires up \DSLContext\, connection and transaction providers, and an exception translator that converts \SQLException\ to Spring \DataAccessException\. The module also registers a \DependsOnDatabaseInitializationDetector\ to ensure jOOQ beans are created after database initialization, and provides failure analysis for missing \DSLContext\ beans or unavailable JAXB dependencies.
module/spring-boot-jooq · high confidence
Add integration test application for embedded container static resource handling
A new test application is introduced in the integration test suite to verify how embedded containers handle static resources. This includes a Spring Boot application that registers servlets for resource path and context operations, alongside a Jetty server customizer that relaxes URI compliance and alias checks. The auto-configuration for these tests is registered via the Spring Boot auto-configuration imports file.
integration-test/spring-boot-server-integration-tests/spring-boot-server-tests-app · high confidence
Add servlet-based smoke test for Spring Boot
A new smoke test module for servlet-based Spring Boot applications has been introduced. This includes a sample application that registers a basic servlet, configured with security credentials, and an integration test that verifies access to the root endpoint using the TestRestTemplate.
smoke-test/spring-boot-smoke-test-servlet · high confidence
Add smoke test for Tomcat SSL configuration
A new smoke test has been added for the \spring-boot-smoke-test-tomcat-ssl\ module. This test validates the behavior of a Spring Boot application running on Tomcat with SSL enabled, verifying that the SSL bundle is correctly configured and that the \/actuator/health\ and \/actuator/info\ endpoints expose the expected SSL certificate details and health status.
smoke-test/spring-boot-smoke-test-tomcat-ssl · high confidence
Add smoke test for custom Subversion client bootstrap registration
Added a new smoke test in the spring-boot-smoke-test-bootstrap-registry module that demonstrates how to register a custom Subversion client via a BootstrapRegistryInitializer. The test verifies that the application correctly loads configuration from a Subversion source and that the custom client is used during startup.
smoke-test/spring-boot-smoke-test-bootstrap-registry · high confidence
Add smoke tests for Couchbase with SSL support
Added smoke tests for the Spring Boot Couchbase integration that verify both reactive and synchronous data access over SSL. The change introduces a \SecureCouchbaseContainer\ to configure a Dockerized Couchbase instance with SSL, and includes test classes (\SampleDataCouchbaseApplicationSslTests\, \SampleDataCouchbaseApplicationReactiveSslTests\) that use \@DataCouchbaseTest\ and \@SpringBootTest\ to validate repository operations with SSL certificates and keys.
smoke-test/spring-boot-smoke-test-data-couchbase · high confidence
Add smoke tests for MongoDB with SSL and reactive repositories
A new smoke test suite for Spring Boot Data MongoDB has been added, covering both reactive and synchronous repository interactions with SSL-enabled MongoDB instances. The test setup includes a custom SecureMongoContainer that configures MongoDB with TLS, along with the necessary SSL certificates and keys for client and server authentication. This allows the project to validate MongoDB connectivity and data operations in a secure, containerized environment.
smoke-test/spring-boot-smoke-test-data-mongodb · high confidence
Add smoke tests for Spring Boot Kafka integration
Added a new smoke test for Spring Boot's Kafka integration, including a sample application that produces and consumes messages using Jackson serialization, along with SSL-enabled test containers and unit tests to verify message exchange.
smoke-test/spring-boot-smoke-test-kafka · medium confidence
Add smoke tests for WebSocket endpoints in the Tomcat example
Added a new smoke test module for the Spring Boot Tomcat WebSocket example, including Java classes for the echo, reverse, and snake game endpoints, along with corresponding HTML/JS static resources and integration tests to verify the WebSocket behavior.
smoke-test/spring-boot-smoke-test-websocket-tomcat · high confidence
Add smoke-test/spring-boot-smoke-test-test with domain, service, and web layers
A new smoke-test module was added to demonstrate testing patterns. It includes a sample application with a domain model (User, VehicleIdentificationNumber), a JPA repository, a remote service layer using RestTemplateBuilder, and a web controller. The module also contains integration tests for the web layer (MockMvc, HtmlUnit, Selenium) and unit tests for the domain and service layers.
smoke-test/spring-boot-smoke-test-test · high confidence
Add support for Apache Artemis messaging
Introduced auto-configuration for Apache Artemis, enabling automatic setup of embedded or native JMS broker connections. The module provides \ArtemisAutoConfiguration\ to manage \ConnectionFactory\ beans, supporting both embedded server modes and native protocol connections. It also includes integration with Docker Compose and Testcontainers for testing, allowing applications to connect to Artemis brokers running in containers or as embedded instances within the application.
module/spring-boot-artemis · high confidence
Add support for exposing actuator endpoints via Jersey
Added new auto-configuration and resource factories that enable Spring Boot's actuator web endpoints to be served through a Jersey-based servlet or filter. This includes the \JerseyAutoConfiguration\ to wire up the Jersey servlet/container, \JerseyEndpointResourceFactory\ to map actuator operations to Jersey resources, and \HealthEndpointJerseyExtensionAutoConfiguration\ to support health endpoint groups with additional paths. Users with a Jersey-based web stack can now access their actuator endpoints without needing a separate servlet container configuration.
module/spring-boot-jersey · high confidence
Add traditional Spring Boot smoke test for JSP and static resources
A new smoke test module, spring-boot-smoke-test-traditional, has been added to verify the behavior of a traditional Spring Boot application using JSP views and static resources. The test includes a sample application with a home JSP page and a static index.html, along with integration tests that confirm the application serves these resources correctly.
smoke-test/spring-boot-smoke-test-traditional · medium confidence
Added AssertJ integration for application contexts
Added new classes in the \org.springframework.boot.test.context.assertj\ package to provide AssertJ-style assertions for \ApplicationContext\ instances. This includes \ApplicationContextAssert\ for verifying bean presence and types, and proxy-based wrappers (\AssertableApplicationContext\, \AssertableWebApplicationContext\, \AssertableReactiveWebApplicationContext\) that allow users to apply AssertJ assertions directly to application contexts, including those that failed to start.
core/spring-boot-test/src/main/java/org/springframework/boot/test/context/assertj · high confidence
Added Data JDBC test slice support
Added the \@DataJdbcTest\ annotation and supporting classes to the \spring-boot-data-jdbc-test\ module, enabling users to write integration tests that focus exclusively on Data JDBC components. This includes the \AutoConfigureDataJdbc\ configuration, a custom \DataJdbcTypeExcludeFilter\ to limit component scanning to JDBC-related beans, and a context bootstrapper. The change also includes integration tests verifying that the test slice correctly configures an embedded database, imports relevant auto-configurations, and respects property overrides.
module/spring-boot-data-jdbc-test · high confidence
Added Spring Boot smoke test for Artemis integration
A new smoke test module for Spring Boot has been added to validate integration with Apache Artemis. This includes a sample application that configures a JMS queue, a producer to send messages, and a consumer to receive them, along with integration tests that verify message delivery using Testcontainers. The module also includes nullability annotations for the package.
smoke-test/spring-boot-smoke-test-artemis · high confidence
Added XSD schemas for Spring Boot 2.3 through 4.1
The Spring Boot Maven plugin now includes XML Schema Definition (XSD) files for versions 2.3, 2.4, 2.5, 2.6, 2.7, 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14, 3.15, 3.16, 3.17, 3.18, 3.19, 3.20, 3.21, 3.22, 3.23, 3.24, 3.25, 3.26, 3.27, 3.28, 3.29, 3.30, 3.31, 3.32, 3.33, 3.34, 3.35, 3.36, 3.37, 3.38, 3.39, 3.40, 3.41, 3.42, 3.43, 3.44, 3.45, 3.46, 3.47, 3.48, 3.49, 3.50, 3.51, 3.52, 3.53, 3.54, 3.55, 3.56, 3.57, 3.58, 3.59, 3.60, 3.61, 3.62, 3.63, 3.64, 3.65, 3.66, 3.67, 3.68, 3.69, 3.70, 3.71, 3.72, 3.73, 3.74, 3.75, 3.76, 3.77, 3.78, 3.79, 3.80, 3.81, 3.82, 3.83, 3.84, 3.85, 3.86, 3.87, 3.88, 3.89, 3.90, 3.91, 3.92, 3.93, 3.94, 3.95, 3.96, 3.97, 3.98, 3.99, 4.0, and 4.1. These schemas define the structure for configuring application layering, including options to include or exclude specific classes, resources, and dependencies, as well as specifying the order in which layers are added to the JAR file.
build-plugin/spring-boot-maven-plugin/src/main/xsd · high confidence
Added cycle detection plugin for Gradle build projects
A new Gradle settings plugin has been added to the build system to detect circular dependencies between projects and layers. This prevents build failures caused by cyclic references, providing clear error messages that identify the specific projects or layers involved in a cycle.
gradle/plugins/cycle-detection-plugin · high confidence
Added new utility classes for instantiation and safe lambda invocation
Added the Instantiator class, which provides a simple factory for instantiating objects by injecting available parameters, and the LambdaSafe class, which allows invoking lambdas in a safe way to handle common generic type concerns and exceptions. These utilities are located in the org.springframework.boot.util package.
core/spring-boot/src/main/java/org/springframework/boot/util · high confidence
Added project configuration and contributor documentation files
Added several new files to the repository root to improve the developer experience and project maintenance. A \.editorconfig\ file was added to enforce consistent code formatting (tabs, 4-space indentation) across editors. A \.gitignore\ file was introduced to exclude build artifacts, IDE settings, and generated files from version control. The \gradlew\ and \gradlew.bat\ scripts were added to provide a consistent Gradle wrapper for building the project. Additionally, \README.adoc\ and \CONTRIBUTING.adoc\ were added to provide clear instructions for building from source, reporting issues, and contributing code, while \SUPPORT.adoc\ and \LICENSE.txt\ were added to clarify support channels and licensing terms.
(repo-wide) · high confidence
Added reactive OAuth2 resource server smoke test
A new smoke test has been added for the reactive OAuth2 resource server, including the application entry point, a REST controller that returns the authenticated user's subject, and a test class that uses WebTestClient to verify successful authentication and unauthorized access scenarios.
smoke-test/spring-boot-smoke-test-reactive-oauth2-resource-server · high confidence
Added support for detecting Amazon Web Services (AWS) ECS as a cloud platform
Spring Boot now recognizes Amazon Web Services (AWS) Elastic Container Service (ECS) as a distinct cloud platform. The framework can automatically detect when the application is running in an AWS ECS environment by checking for the \AWS\_EXECUTION\_ENV\ environment variable. This enables platform-specific auto-configuration and environment post-processing for ECS deployments.
core/spring-boot/src/main/java/org/springframework/boot/cloud · high confidence
Added version information classes for Spring Boot and SSL provider
Introduced new Java classes, SpringBootVersion and SpringBootProviderVersion, which expose the current Spring Boot version string. These changes provide a standardized way for applications to retrieve the Spring Boot version at runtime, with the SSL provider version specifically supporting the org.springframework.boot.ssl package.
core/spring-boot/src/main/javaTemplates · medium confidence
Auto-configuration for Spring Data LDAP repositories
Spring Boot now provides automatic configuration for Spring Data LDAP repositories. This adds a new \spring.data.ldap.repositories.enabled\ property to control whether LDAP repository auto-configuration is applied, and registers the \DataLdapRepositoriesAutoConfiguration\ to enable repository scanning and proxy creation for LDAP-based data access.
module/spring-boot-data-ldap · high confidence
Auto-configuration for Spring Data R2DBC
Spring Boot now provides automatic configuration for Spring Data R2DBC. This adds \DataR2dbcAutoConfiguration\ to set up the \R2dbcEntityTemplate\ and related components, and \DataR2dbcRepositoriesAutoConfiguration\ to enable reactive repositories. The feature includes a new \spring.data.r2dbc.repositories.enabled\ property to control repository scanning. Tests verify that the auto-configuration correctly initializes the entity template and repositories when R2DBC is on the classpath.
module/spring-boot-data-r2dbc, module/spring-boot-webtestclient · high confidence
Auto-configuration for Spring Security integration with MockMvc and WebTestClient
Spring Boot now provides dedicated auto-configuration for integrating Spring Security with test clients. For Servlet-based applications, \SecurityMockMvcAutoConfiguration\ ensures that MockMvc requests run with the user in the \TestSecurityContextHolder\ and configures the \HtmlUnitDriver\ to use a \DelegatingSecurityContextExecutor\. For Reactive applications, \SecurityWebTestClientAutoConfiguration\ registers a \MockServerConfigurer\ to apply Spring Security to \WebTestClient\ requests. These changes ensure that security context and filters are correctly applied during tests.
module/spring-boot-security-test · high confidence
Auto-configuration for reactive HTTP service clients backed by WebClient
Spring Boot now provides auto-configuration for reactive HTTP service clients using the reactive WebClient. This includes a prototype-scoped \WebClient.Builder\ bean, automatic SSL bundle integration, codec customization, and Micrometer observation support. Service clients can be configured via \HttpServiceClientProperties\, allowing users to set base URLs, default headers, and API versions through application properties. The configuration is automatically applied when \WebClient\ and \HttpServiceProxyRegistry\ are present on the classpath.
module/spring-boot-webclient · high confidence
Auto-configuration for the OAuth 2.0 Authorization Server
Spring Boot now provides automatic configuration for the OAuth 2.0 Authorization Server. This adds support for configuring the authorization server's endpoints, registered clients, and JWT-based security through standard \spring.security.oauth2.authorizationserver\ properties. The auto-configuration ensures that the necessary \ObjectPostProcessor\ is defined before other security configurations, and it allows customizing the \HttpSecurity\ via \Customizer\ beans.
module/spring-boot-security-oauth2-authorization-server · high confidence
Auto-configure Spring REST Docs for servlet and reactive tests
Spring REST Docs is now auto-configured for both servlet-based (MockMvc) and reactive (WebTestClient) tests. The \@AutoConfigureRestDocs\ annotation and \RestDocsAutoConfiguration\ provide automatic setup for generating documentation snippets, while \RestDocsTestExecutionListener\ manages the test lifecycle. Configuration is driven by the \spring.test.restdocs\ properties (such as \uriScheme\, \uriHost\, and \uriPort\) and can be further customized via \RestDocsMockMvcConfigurationCustomizer\ or \RestDocsWebTestClientConfigurationCustomizer\ beans.
module/spring-boot-restdocs · high confidence
Automated forward-port issue creation and merge message rewriting
Two new git hooks, \forward-merge\ and \prepare-forward-merge\, have been added to automate the process of creating GitHub issues for forward-ported fixes. The \prepare-forward-merge\ hook rewrites merge commit messages to include references to fixed issues. The \forward-merge\ hook parses these messages, identifies the target milestone, and creates new GitHub issues with appropriate labels and milestone assignments, supporting both OSS and commercial repositories.
git · high confidence
Automatic metrics and web support for Spring Data repositories
Spring Data repositories now automatically record Micrometer metrics for method invocations, including execution time and result states, with configurable properties for metric names and auto-timing. Additionally, web support for Spring Data is automatically configured, allowing customization of page and sort parameter handling in web requests.
module/spring-boot-data-commons · high confidence
Automatic migration of deprecated or unsupported configuration keys
Spring Boot now automatically detects and renames legacy configuration keys that have been deprecated or are no longer supported. A new \PropertiesMigrationListener\ inspects the environment for deprecated properties and, where a replacement exists, temporarily remaps the old key to the new one. A report is generated and logged, warning users about renamed keys and erroring on unsupported keys, helping developers update their configuration files to use the new property names.
core/spring-boot-properties-migrator · high confidence
Brave tracing auto-configuration and propagation support
The Brave tracing module has been split into a dedicated \spring-boot-micrometer-tracing-brave\ module, introducing \BraveAutoConfiguration\ to manage the Brave Tracer, SpanContext, and propagation factories. This includes support for W3C and B3 propagation formats, configurable baggage correlation, and a new \management.brave.tracing.span-joining-supported\ property to enable span ID sharing between client and server spans. The change also adds auto-configuration for Zipkin-based tracing via \ZipkinWithBraveTracingAutoConfiguration\ and updates the deprecated \management.tracing.exemplars.filter\ property to \management.tracing.exemplars.include\.
module/spring-boot-micrometer-tracing-brave · high confidence
Centralized Spring Maven repository configuration
A new Groovy script, SpringRepositorySupport.groovy, has been added to buildSrc to centralize the configuration of Spring Maven repositories. This script provides a \spring.mavenRepositories()\ extension that automatically adds the appropriate release, snapshot, and commercial repositories based on the current build version and type, while also supporting environment variables for commercial repository credentials.
buildSrc · high confidence
Cloud Foundry actuator endpoint security and exposure
The Cloud Foundry module now introduces a dedicated security and exposure mechanism for actuator endpoints. A new \CloudFoundryWebEndpointDiscoverer\ and \CloudFoundryEndpointFilter\ allow Cloud Foundry-specific extensions (such as \CloudFoundryReactiveHealthEndpointWebExtension\) to replace standard endpoints, ensuring full health details are exposed. Access control is enforced via a \SecurityInterceptor\ that validates JWT tokens and grants \AccessLevel\ (RESTRICTED or FULL) based on Cloud Controller permissions. The \CloudFoundryEndpointExposureOutcomeContributor\ ensures these endpoints are exposed over HTTP when running on Cloud Foundry, while \CloudFoundryAuthorizationException\ and \SecurityResponse\ handle authorization failures and security headers.
module/spring-boot-cloudfoundry · high confidence
Document Devtools property defaults in reference docs
A new Gradle task, DocumentDevtoolsPropertyDefaults, has been added to automatically generate AsciiDoc documentation for Spring Boot DevTools' default property values. This task scans JAR files for META-INF/spring-devtools.properties entries and compiles them into a reference document, ensuring the documentation stays synchronized with the actual defaults.
buildSrc/src/main/java/org/springframework/boot/build/devtools · high confidence
Expanded type conversion and formatting support
The \core/spring-boot\ module introduces a comprehensive set of new converters and formatters in the \org.springframework.boot.convert\ package. This includes formatters for \char\[\]\, \InetAddress\, and \OffsetDateTime\ (ISO offset), alongside converters for \Duration\ (to string, number, and from number), \DataSize\ (from number), \Collection\/\Array\ to/from delimited strings, and lenient string/boolean-to-enum conversion. These additions enhance the framework's ability to handle various data type conversions and formatting scenarios out of the box.
core/spring-boot/src/main/java/org/springframework/boot/convert · high confidence
Flyway integration refactored for Spring Boot 4.0
The Flyway integration has been restructured to align with Spring Boot 4.0 architecture. A new \FlywayEndpoint\ actuator endpoint exposes migration status and details, while \FlywayAutoConfiguration\ and related classes (e.g., \FlywayConnectionDetails\, \FlywayProperties\) have been reorganized to support modern Spring Boot auto-configuration patterns. The module now includes dedicated support for GraalVM native images via \NativeImageResourceProvider\, and integration tests have been updated to use Docker Compose and Testcontainers for database testing.
module/spring-boot-flyway · high confidence
Gson auto-configuration and JSON test support
The Gson module now provides full auto-configuration for the Gson library, exposing a configurable \Gson\ bean and a \GsonBuilderCustomizer\ SPI for fine-tuning. Configuration properties under \spring.gson\ allow users to control serialization behavior, including a new \strictness\ option (replacing the deprecated \lenient\ property) and support for Gson 2.11's \Strictness\ enum. For testing, the module registers a \GsonTester\ bean when JSON testers are enabled, enabling JSON comparison in \@JsonTest\ and \@SpringBootTest\ contexts.
module/spring-boot-gson · high confidence
H2 Console auto-configuration and properties
The H2 Console is now auto-configured via \H2ConsoleAutoConfiguration\, exposing a \ServletRegistrationBean\ for the H2 web console. Users can enable the console with \spring.h2.console.enabled=true\ and configure its path, trace output, remote access, and admin password through \spring.h2.console\ properties. The auto-configuration is registered in \META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports\ and includes a logger that reports available database connection URLs. Tests verify the new configuration and property binding.
module/spring-boot-h2console · high confidence
Improved testcontainer lifecycle and parallel startup support
Added new integration tests for the testcontainers module, including lifecycle ordering, parallel startup, and property source auto-configuration. The changes introduce a \TestcontainerBeanDefinition\ interface to better manage container beans and add a \ResetStartablesExtension\ to reset JUnit 5 startables between tests. These updates ensure that container start and destroy events happen in the correct order and support parallel container startup via the \spring.testcontainers.beans.startup=parallel\ property.
core/spring-boot-testcontainers · high confidence
Initial auto-configuration for Spring GraphQL
The \module/spring-boot-graphql\ module introduces a new set of auto-configuration classes that automatically set up Spring GraphQL infrastructure. This includes a \GraphQlAutoConfiguration\ that creates a \GraphQlSource\ and related beans, along with specific configurations for WebFlux (reactive), data integrations (Query By Example, Querydsl), and Micrometer observation. The change also adds \GraphQlProperties\ and \GraphQlCorsProperties\ to allow users to configure schema locations, HTTP paths, and CORS settings for the GraphQL endpoint.
module/spring-boot-graphql · high confidence
Initial implementation of the embedded Jetty web server support
This change introduces the new \spring-boot-jetty\ module, providing the foundation for embedded Jetty support in Spring Boot 4.0. It includes the core server implementation (\JettyWebServer\), factory classes (\JettyWebServerFactory\), and auto-configuration classes (\JettyWebServerConfiguration\, \JettyServerProperties\) that map Spring Boot properties to Jetty settings. The implementation adds support for configuring thread pools, connection limits, access logging, and SSL, while also introducing a new \JettyServerCustomizer\ SPI for advanced customization.
module/spring-boot-jetty · high confidence
Introduce 'tools' jar mode for extracting and listing layers
A new 'tools' jar mode is introduced, enabling users to extract Spring Boot jar contents and list available layers via the command line. This includes the 'extract' command to unpack the jar, the 'list-layers' command to view layer definitions, and a 'help' command for usage information. The implementation relies on new internal classes such as Command, Context, and Layers to manage these operations, with the 'extract' command supporting options for destination, layers, and launcher extraction. The 'list' command is marked as deprecated in favor of 'list-layers'.
loader/spring-boot-jarmode-tools · high confidence
Introduce BOMR tooling for automated library upgrades
Added a new set of classes in buildSrc to support the BOMR (Build On Maven Repository) tooling, which automates the process of upgrading library versions in the Spring Boot BOM. This includes an interactive resolver for selecting upgrades, a standard resolver for non-interactive runs, and a multithreaded resolver for parallel update checks. The implementation handles version resolution from Maven repositories, manages release schedules, and applies upgrades to build files or properties, while also supporting moving to snapshot versions and handling commercial releases.
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr · high confidence
Introduce Docker configuration and authentication support
Added a new \org.springframework.boot.buildpack.platform.docker.configuration\ package that provides classes for configuring Docker connections and registry authentication. This includes \DockerConnectionConfiguration\ and \ResolvedDockerHost\ to manage host and context-based connections, \DockerRegistryAuthentication\ with implementations for user/token-based auth and reading from Docker's \config.json\ and credential helpers, and \DockerConfigurationMetadata\ to parse Docker's metadata files. These changes enable the buildpack platform to automatically detect and use Docker credentials and context settings from the local environment.
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/configuration · high confidence
Introduce GitHub API client for BOMR issue management
Added a new internal GitHub API client to the BOMR build tooling, providing a minimal interface for creating and managing issues, labels, and milestones. This implementation handles authentication and REST interactions with the GitHub API, enabling automated issue creation and status tracking for the BOMR process.
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/github · high confidence
Introduce LoggingApplicationListener for Spring Boot logging integration
Added the LoggingApplicationListener class, which configures the LoggingSystem and manages logging levels and groups based on environment properties. This component enables Spring Boot's default logging behavior, including debug/trace logging for Spring, Tomcat, Jetty, and Hibernate, and supports file-based logging output.
core/spring-boot/src/main/java/org/springframework/boot/context/logging · high confidence
Introduce Reactor Netty as the default reactive web server
Spring Boot now supports a Reactor Netty-based reactive web server. This change adds a new \NettyReactiveWebServerFactory\ and associated auto-configuration classes to manage the lifecycle, SSL, and compression of the Netty server. Users can now configure Netty-specific server properties (such as connection and idle timeouts) and customize the Netty server via \NettyServerCustomizer\ and \NettyRouteProvider\ interfaces. The \@AutoConfigureWebServer\ annotation is also added to support testing scenarios.
module/spring-boot-reactor-netty · high confidence
Introduce SSL bundle API for managing trust material
Added a new \org.springframework.boot.ssl\ package that provides a structured way to manage SSL trust material. This includes the \SslBundle\ interface and its \DefaultSslBundleRegistry\ implementation, which allows registering, retrieving, and updating named SSL bundles. The change introduces supporting types such as \SslStoreBundle\ for keystore/truststore references, \SslManagerBundle\ for key and trust managers, \SslOptions\ for cipher and protocol configuration, and \SslBundleKey\ for key references. It also adds \NoSuchSslBundleException\ for error handling and specific implementations like \AliasKeyManagerFactory\ and \FixedTrustManagerFactory\ to support configurable key aliases and fixed trust managers. Additionally, a \jks\ sub-package provides a \JksSslStoreBundle\ implementation for Java KeyStores, and a \pem\ sub-package begins support for PEM-based stores.
core/spring-boot/src/main/java/org/springframework/boot/ssl · high confidence
Introduce Spring Session Data Redis auto-configuration
Adds auto-configuration for Spring Session with Redis, supporting both servlet and reactive web applications. Users can now configure session storage in Redis using properties like \spring.session.data.redis.namespace\, \flush-mode\, \save-mode\, and \repository-type\ (default or indexed). The configuration also supports customizing session timeout, cleanup cron jobs for indexed repositories, and configuring Redis actions. This replaces the previous \spring.session.redis.\\ properties with the new \spring.session.data.redis.\\ namespace, with deprecation warnings for the old keys.
module/spring-boot-batch-jdbc, module/spring-boot-session-data-redis · high confidence
Introduce build type configuration for commercial and open-source builds
Added new build infrastructure to distinguish between open-source and commercial build types. The \BuildType\ enum now supports \OPEN\_SOURCE\ and \COMMERCIAL\ variants, allowing the build system to adapt its behavior based on the selected build mode. This enables the project to maintain separate build configurations and metadata for commercial releases versus the standard open-source distribution.
buildSrc/src/main/java/org/springframework/boot/build/properties · high confidence
Introduce core abstractions for Docker Compose integration
Added a new set of core classes in the \spring-boot-docker-compose\ module that provide a high-level API for managing Docker Compose services. This includes the \DockerCompose\ interface and its \DefaultDockerCompose\ implementation, which handle lifecycle commands like \up\, \down\, \start\, and \stop\. The update also introduces \DockerCli\ to manage CLI interactions, \DefaultConnectionPorts\ to map container ports to host ports, and \DefaultRunningService\ to represent active containers. These changes enable Spring Boot to detect and interact with running Docker Compose services, exposing their environment variables, labels, and port mappings to the application context.
core/spring-boot-docker-compose/src/main/java · high confidence
Introduce fluent builder API for Spring Boot application context hierarchy
The \org.springframework.boot.builder\ package now provides a fluent builder API for constructing \SpringApplication\ instances with support for parent-child context hierarchies. This includes \SpringApplicationBuilder\ for chaining configuration, \ParentContextApplicationContextInitializer\ to set up the parent context, and \ParentContextCloserApplicationListener\ to automatically close child contexts when the parent closes. These changes enable developers to easily configure and manage nested application contexts in a more readable, chainable way.
core/spring-boot/src/main/java/org/springframework/boot/builder · high confidence
Introduce new auto-configuration for RestClient and RestTemplate builders
The spring-boot-restclient module now provides dedicated auto-configuration for both the modern RestClient and the legacy RestTemplate. For RestClient, a new \RestClientAutoConfiguration\ registers a prototype-scoped \RestClient.Builder\ bean, configured via \RestClientBuilderConfigurer\ and \RestClientCustomizer\ beans, including automatic support for SSL bundles, message converters, and Micrometer observation. For RestTemplate, a new \RestTemplateAutoConfiguration\ registers a \RestTemplateBuilder\ bean, configured via \RestTemplateBuilderConfigurer\ and \RestTemplateCustomizer\ beans, supporting SSL, message converters, and observation. Both configurations allow users to inject the respective builders to create fully configured client instances.
module/spring-boot-restclient · high confidence
Introduce optional dependency support in buildSrc
A new Gradle plugin, OptionalDependenciesPlugin, has been added to the buildSrc module. This plugin creates a new 'optional' configuration that is included in both the compile and runtime classpaths of the project, allowing for Maven-style optional dependencies that do not propagate to dependent projects.
buildSrc/src/main/java/org/springframework/boot/build/optional · high confidence
Introduce origin tracking for configuration items
The \org.springframework.boot.origin\ package is introduced with new classes and interfaces to track the origin of configuration items. This includes the \Origin\ interface and its implementations (\PropertySourceOrigin\, \SystemEnvironmentOrigin\, \TextResourceOrigin\), along with helper classes like \OriginTrackedResource\ and \OriginTrackedValue\ to wrap resources and values with their origin information. This allows users to identify where specific configuration values originated from, such as a specific line in a properties file or a system environment variable.
core/spring-boot/src/main/java/org/springframework/boot/origin · high confidence
Introduce persistence auto-configuration and entity scanning support
The spring-boot-persistence module now provides auto-configuration for translating persistence exceptions via the new \PersistenceExceptionTranslationAutoConfiguration\, which registers a \PersistenceExceptionTranslationPostProcessor\ (enabled by default). Additionally, the framework introduces a new \@EntityScan\ annotation and supporting classes (\EntityScanPackages\, \EntityScanner\) that allow users to explicitly specify base packages for scanning entity classes, with the scanner falling back to auto-configuration packages if none are defined.
module/spring-boot-persistence · high confidence
Introduce shared abstraction for SQL database initialization
Added a new shared abstraction for SQL database initialization in the \spring-boot-sql\ module. This includes a \DatabaseInitializationMode\ enum to control when initialization occurs, a \DatabaseInitializationSettings\ class to hold configuration, and an \AbstractScriptDatabaseInitializer\ base class to handle script execution. The change also introduces a dependency configuration system (\DatabaseInitializationDependencyConfigurer\) that automatically wires beans depending on database initialization to run after the initializer beans, using new \@ConditionalOnSqlInitialization\ and \@DependsOnDatabaseInitialization\ annotations to manage bean lifecycle order.
module/spring-boot-sql · high confidence
Introduce structured logging support with configurable JSON formatters
Adds a new structured logging subsystem in the \org.springframework.boot.logging.structured\ package, introducing a \StructuredLogFormatter\ interface and a \JsonWriterStructuredLogFormatter\ base class to produce JSON log output. The change includes an enum of common log formats (ECS, GELF, Logstash), a factory for instantiating formatters, and property classes (\ElasticCommonSchemaProperties\, \GraylogExtendedLogFormatProperties\, \StructuredLoggingJsonProperties\) to configure the output. Users can now enable structured logging by setting the \logging.format\ property or by configuring specific format options, with support for customizing the JSON members via a \StructuredLoggingJsonMembersCustomizer\.
core/spring-boot/src/main/java/org/springframework/boot/logging/structured · high confidence
Liquibase integration and actuator endpoint
Added support for Liquibase database migrations, including auto-configuration, a dedicated \LiquibaseEndpoint\ for actuator, and a failure analyzer for missing changelogs. The update also introduces connection details factories for Docker Compose and Testcontainers, enabling seamless integration with containerized databases.
module/spring-boot-liquibase · high confidence
Migrate Spring Boot documentation build to Antora
The build system for generating Spring Boot documentation has been migrated from the previous tooling to Antora. This change introduces a new Gradle plugin infrastructure (AntoraContributorPlugin, AntoraDependenciesPlugin) and associated tasks to manage content contributions (source, catalog, aggregate) and generate Antora playbooks. It also adds a task to validate Javadoc macros in AsciiDoc files, ensuring that all cross-references to Java classes and methods are valid. This restructuring supports the new Antora-based documentation site generation.
buildSrc/src/main/java/org/springframework/boot/build/antora · high confidence
Modularize Spring MVC actuator and mapping support
Spring MVC support for actuator endpoints and request mapping introspection has been moved into the new spring-boot-webmvc module. This includes new handler mappings for web endpoints, dedicated classes for describing dispatcher servlet mappings, and auto-configuration for the DispatcherServlet, separating these concerns from the main spring-boot-actuator and spring-boot-web modules.
module/spring-boot-webmvc · high confidence
Mustache template engine support for Spring Boot
Spring Boot now provides auto-configuration for the Mustache template engine, supporting both Servlet-based (Spring MVC) and Reactive (WebFlux) web environments. The \spring.mustache\ properties allow configuring the template prefix, suffix, and character set. Users can render Mustache templates in their web applications by simply including the \spring-boot-mustache\ module, with automatic setup of view resolvers and compilers for both servlet and reactive stacks.
module/spring-boot-mustache · high confidence
New @AutoConfigureMetrics annotation for controlling metrics in tests
A new @AutoConfigureMetrics annotation and supporting context customizer have been added to the spring-boot-micrometer-metrics-test module. When present on a test class, it ensures that an in-memory MeterRegistry and ObservationRegistry are available in the application context. By default, the customizer disables metrics export in tests (setting management.defaults.metrics.export.enabled=false), but this can be enabled via the spring.test.metrics.export property or by using @AutoConfigureMetrics(export=true).
module/spring-boot-micrometer-metrics-test · high confidence
New @AutoConfigureTracing annotation for test auto-configuration
A new @AutoConfigureTracing annotation and supporting auto-configuration classes have been added to the spring-boot-micrometer-tracing-test module. This allows tests to explicitly enable or disable tracing auto-configuration, with the ability to control whether traces are exported to external systems via the spring.test.tracing.export property or the annotation's export attribute.
module/spring-boot-micrometer-tracing-test · high confidence
New @GraphQlTest slice and tester auto-configuration
The spring-boot-graphql-test module now provides dedicated test support for Spring GraphQL. Developers can use the new @GraphQlTest annotation to run unit-style tests that load only the relevant GraphQL components (controllers, runtime wiring, Jackson converters) without a web layer, or use @AutoConfigureGraphQlTester/@AutoConfigureHttpGraphQlTester to inject GraphQlTester/HttpGraphQlTester instances for more granular control. The changes include the new annotations, their corresponding auto-configurations, and the type-exclude filters that define which beans are loaded during these tests.
module/spring-boot-graphql-test · high confidence
New @RestClientTest slice for REST client testing
A new @RestClientTest annotation and supporting auto-configuration have been added to the spring-boot-restclient-test module. This provides a dedicated test slice that automatically configures a MockRestServiceServer for both RestClient and RestTemplate, allowing users to easily mock external HTTP services in their tests without loading the full application context.
module/spring-boot-restclient-test · high confidence
New @WebMvcTest slice for testing Spring MVC components
The spring-boot-webmvc-test module now provides the @WebMvcTest annotation and supporting auto-configuration classes (such as MockMvcAutoConfiguration and WebMvcTypeExcludeFilter) to enable focused testing of Spring MVC controllers. This change introduces a new test slice that isolates MVC components, allowing developers to write unit tests for controllers without loading the full application context. The module also includes configuration for MockMvc, HtmlUnit WebClient, and Selenium WebDriver integration within these tests.
module/spring-boot-webmvc-test · high confidence
New Docker type classes for container and image management
The Spring Boot buildpack platform introduces a new set of classes in the \org.springframework.boot.buildpack.platform.docker.type\ package to manage Docker containers and images. This includes \ContainerConfig\ for defining container settings (user, command, labels, bindings, environment variables), \Image\ and \ImageConfig\ for inspecting image details and configuration, \ImageArchive\ for creating Docker image archives, and supporting types like \Binding\, \Layer\, and \ImageReference\. These classes provide a structured way to configure and interact with Docker containers and images within the buildpack platform.
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/docker/type · high confidence
New Elasticsearch client auto-configuration and integration tests
Added auto-configuration for the new Elasticsearch Java client (Rest5Client) alongside the existing REST client, enabling automatic client setup and health checks. The change introduces new configuration properties for connection timeouts, API key authentication, and sniffer settings, while also providing integration tests for Docker Compose and Testcontainers-based Elasticsearch instances.
module/spring-boot-elasticsearch · high confidence
New Gradle plugin for aggregating project outputs
A new Gradle plugin, AggregatorPlugin, has been introduced to aggregate the output of other projects. This plugin allows users to define named aggregates that collect files based on specific category and usage attributes, simplifying the process of combining outputs from multiple subprojects into a single collection.
buildSrc/src/main/java/org/springframework/boot/build/aggregation · high confidence
New Gradle test-kit support classes for testing Gradle builds
A new set of utility classes has been added to the Spring Boot test-support module to facilitate testing Gradle builds. The \Dsl\ enum defines supported DSL variants (Groovy and Kotlin), while \GradleBuild\ provides a fluent API to configure and execute Gradle builds via the TestKit, including support for configuration cache, deprecation warnings, and script properties. The \GradleBuildExtension\ JUnit 5 extension automatically manages the lifecycle of a \GradleBuild\ instance for each test, and \GradleVersions\ defines the minimum and maximum compatible Gradle versions (ranging from 8.14.5 to 9.4.0) for different Java versions. These changes enable developers to write integration tests that validate Gradle build scripts against specific Gradle versions.
test-support/spring-boot-gradle-test-support · high confidence
New Gradle-based BOM build system
The build system for managing Spring Boot's Bill of Materials (BOM) has been rewritten in Java using Gradle's plugin and task APIs. This introduces a new \BomPlugin\ that configures dependency management, generates a resolved BOM, and runs validation checks (such as verifying links and prohibited versions). The new system supports version alignment across libraries, allows importing external BOMs, and provides a structured DSL (\BomExtension\) for defining library groups, exclusions, and upgrade policies. This replaces the previous approach, offering more robust dependency management and validation for the \spring-boot-dependencies\ artifact.
buildSrc/src/main/java/org/springframework/boot/build/bom · high confidence
New HTTP client configuration and builder API
The HTTP client module introduces a new \ClientHttpRequestFactoryBuilder\ API that allows users to construct and customize \ClientHttpRequestFactory\ instances for various HTTP libraries (Apache HttpComponents, Jetty, Reactor, JDK, and Simple). This includes support for configuring cookie handling, redirects, timeouts, SSL bundles, and address filtering. The change also adds runtime hints for AOT compilation and registers reflection hints for HTTP client implementations.
module/spring-boot-http-client · high confidence
New HTTP codec auto-configuration with Jackson 3 and configurable properties
The \spring-boot-http-codec\ module now introduces a new \CodecsAutoConfiguration\ that automatically configures HTTP codecs for JSON serialization. By default, it uses Jackson 3 (\tools.jackson.databind.json.JsonMapper\), while falling back to the deprecated Jackson 2 (\com.fasterxml.jackson.databind.ObjectMapper\) if Jackson 3 is absent. Users can explicitly choose between \jackson\ and \jackson2\ via the new \spring.http.codecs.preferred-json-mapper\ property. Additionally, the module exposes \spring.http.codecs.log-request-details\ and \spring.http.codecs.max-in-memory-size\ properties to control request logging and memory limits for HTTP codecs.
module/spring-boot-http-codec · high confidence
New Hibernate JPA auto-configuration and metrics support
The module now provides a dedicated auto-configuration for Hibernate JPA, introducing classes such as HibernateJpaAutoConfiguration, HibernateJpaConfiguration, and HibernateProperties to manage JPA and Hibernate settings. It adds a Spring-specific implicit naming strategy (SpringImplicitNamingStrategy) and supports configuring physical and implicit naming strategies via properties. Additionally, it introduces HibernateMetricsAutoConfiguration to automatically bind Hibernate metrics to the Micrometer registry, and adds a HibernatePropertiesCustomizer SPI for customizing Hibernate properties. The deprecated SpringJtaPlatform is marked for removal.
module/spring-boot-hibernate · high confidence
New IO, Socket, and System abstractions for buildpack platform
Added new classes in the \spring-boot-buildpack-platform\ module to support buildpack operations: \Content\, \InspectedContent\, \Layout\, \TarArchive\, and \TarLayoutWriter\ for handling file and archive I/O; \AbstractSocket\, \NamedPipeSocket\, and \UnixDomainSocket\ for local socket communication; and \Environment\ for accessing environment variables. These classes provide foundational abstractions for file permissions, ownership, and system interactions within the buildpack platform.
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/io, buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/socket, buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/system · high confidence
New JDBC test slice and auto-configuration for isolated JDBC testing
Added a new \@JdbcTest\ annotation and supporting auto-configuration (\AutoConfigureJdbc\, \AutoConfigureTestDatabase\, \TestDatabaseAutoConfiguration\) that allows tests to focus exclusively on JDBC-based components. The \@JdbcTest\ slice excludes regular components and configuration properties, automatically using an embedded in-memory database. The \@AutoConfigureTestDatabase\ annotation provides fine-grained control over replacing existing \DataSource\ beans, supporting scenarios with Testcontainers, Docker Compose, and \@ServiceConnection\. This includes new integration tests for various database configuration scenarios.
module/spring-boot-jdbc-test · high confidence
New Log4j2 pattern converters and structured log formatters
The Log4j2 logging integration now includes several new pattern converters and structured log formatters. New pattern converters include ColorConverter for ANSI color styling, CorrelationIdConverter for MDC-based correlation IDs, EnclosedInSquareBracketsConverter for optional value formatting, ExtendedWhitespaceThrowablePatternConverter for stack traces, and Extractor for message/stack trace extraction. Additionally, new structured log formatters support Elastic Common Schema (ECS), Graylog Extended Log Format (GELF), and Logstash formats. Runtime hints are registered for Log4j2 configuration files and reflection types to support native image compilation.
core/spring-boot/src/main/java/org/springframework/boot/logging/log4j2 · high confidence
New MongoDB auto-configuration and health indicators
The \spring-boot-mongodb\ module now provides dedicated auto-configuration for MongoDB, including \MongoAutoConfiguration\ and \MongoReactiveAutoConfiguration\ which create \MongoClient\ beans using a new \MongoClientFactory\ and \MongoClientSettingsBuilderCustomizer\ architecture. This replaces the previous Spring Data MongoDB integration with a standalone, property-driven connection setup. Additionally, new \MongoHealthIndicator\ and \MongoReactiveHealthIndicator\ classes are introduced, with corresponding auto-configuration classes (\MongoHealthContributorAutoConfiguration\ and \MongoReactiveHealthContributorAutoConfiguration\) that expose health status via the new health contributor system. Integration tests have been added to verify connection details and health status for both standard and reactive clients.
module/spring-boot-mongodb · high confidence
New RetryPolicySettings configuration class
A new RetryPolicySettings class has been added to the Spring Boot retry package, providing a centralized configuration for retry policies. This class allows users to define exception inclusion and exclusion lists, set maximum retry attempts, configure delay and jitter parameters, and apply custom predicates or factories to build a RetryPolicy instance.
core/spring-boot/src/main/java/org/springframework/boot/retry · high confidence
New Spring Boot test client modules for integration testing
A new \spring-boot-resttestclient\ module has been introduced, providing \TestRestTemplate\ and \RestTestClient\ classes along with their auto-configuration. This module enables convenient HTTP client usage in integration tests, with automatic binding to local test web servers and support for customizing the underlying \RestClient\ or \RestTemplate\ via builder patterns and customizers. Kotlin extension functions are also provided for \TestRestTemplate\ to simplify type-safe HTTP calls in Kotlin tests.
module/spring-boot-resttestclient · high confidence
New TestEntityManager for simplified JPA testing
Added a new TestEntityManager class and its auto-configuration to provide a simplified API for common JPA testing tasks such as persisting, flushing, and finding entities. The change also includes Kotlin extension functions that leverage reified type parameters for more concise usage in Kotlin tests, along with the corresponding unit tests for both Java and Kotlin implementations.
module/spring-boot-jpa-test · high confidence
New Thymeleaf-based smoke test application
A new smoke test application has been added to validate Spring Boot's Thymeleaf integration. This includes a sample web UI with a \MessageController\ for creating, viewing, and deleting messages, backed by an in-memory repository. The test suite now exercises the full stack, including template rendering, form submission, and validation, ensuring the Thymeleaf auto-configuration and MVC components function correctly in a live environment.
smoke-test/spring-boot-smoke-test-web-thymeleaf · high confidence
New actuator endpoint to manage caches
A new actuator endpoint has been added to the Spring Boot cache module, exposing a \caches\ endpoint that allows users to read the status of all configured caches and clear them via the actuator interface. This includes the \CachesEndpoint\ and its web extension, along with supporting classes like \CachesEndpointAutoConfiguration\ and \NonUniqueCacheException\.
module/spring-boot-cache · high confidence
New actuator endpoints for auditing, bean inspection, and configuration properties
The actuator module introduces several new endpoints: an \AuditEventsEndpoint\ that exposes audit events via an \AuditEventRepository\ and an in-memory implementation; a \BeansEndpoint\ that lists application context beans grouped by parent context; a \ShutdownEndpoint\ to terminate the application context; and a \ConfigurationPropertiesReportEndpoint\ that serializes \@ConfigurationProperties\ beans using Jackson (supporting both Jackson 2 and Jackson 3). These additions expand the actuator's diagnostic and operational capabilities.
module/spring-boot-actuator · high confidence
New annotation and configuration utilities for Spring Boot
Added new classes in the org.springframework.boot.context.annotation package to improve configuration management and null-safety. This includes the Configurations abstract class for managing sets of @Configuration classes with ordering and bean name generation, the UserConfigurations class for user-defined configurations, the ImportCandidates utility for loading import candidates from the classpath, and the DeterminableImports interface for early import determination. These additions support better ApplicationContext caching and configuration handling in Spring Boot tests and auto-configuration scenarios.
core/spring-boot/src/main/java/org/springframework/boot/context/annotation · high confidence
New auto-configuration and connection details for Zipkin tracing
The Zipkin module now includes a new \ZipkinAutoConfiguration\ that wires up HTTP clients and senders for sending spans to a Zipkin server. The configuration supports JSON and Protocol Buffers v3 encodings, with configurable connect and read timeouts. Additionally, the module introduces \ZipkinConnectionDetails\ implementations for Docker Compose and Testcontainers, enabling automatic service connection resolution for Zipkin instances running in containers. The configuration properties have been renamed from \management.zipkin.tracing.\\ to \management.tracing.export.zipkin.\\, with the old property names marked as deprecated.
module/spring-boot-zipkin · high confidence
New auto-configuration and test support for Apache Kafka
Spring Boot now provides auto-configuration for Apache Kafka, including a new \KafkaAutoConfiguration\ that wires \KafkaTemplate\, consumer/producer factories, and listener container factories. The \KafkaProperties\ class exposes all Kafka configuration options, and the \ConcurrentKafkaListenerContainerFactoryConfigurer\ allows fine-grained customization of listener containers. Additionally, integration tests have been added for Apache Kafka, Confluent Kafka, and Redpanda containers to verify connection details and message processing.
module/spring-boot-kafka · high confidence
New auto-configuration for Micrometer Observation support
The \spring-boot-micrometer-observation\ module now provides auto-configuration for Micrometer's Observation API. This includes an \ObservationAutoConfiguration\ that sets up an \ObservationRegistry\, configures observation predicates, filters, and global conventions, and supports customizing the registry via \ObservationRegistryCustomizer\. It also enables the \@Observed\ annotation support via an \ObservedAspect\ and \ObservationKeyValueAnnotationHandler\, controlled by the \management.observations.annotations.enabled\ property. Additionally, scheduled tasks can be made observable through \ScheduledTasksObservationAutoConfiguration\. These changes introduce new configuration properties under \management.observations\ to control observation behavior.
module/spring-boot-micrometer-observation · high confidence
New auto-configuration for Micrometer Tracing and exemplar support
The \spring-boot-micrometer-tracing\ module now provides auto-configuration for the Micrometer Tracing API, including a no-op tracer and handlers for propagating trace context. It also adds auto-configuration for OTLP and Prometheus exemplars, allowing users to control which traces are included as exemplars via the \management.tracing.exemplars.include\ property. Additionally, log correlation is supported through an \EnvironmentPostProcessor\ that enables the \LoggingSystem.EXPECT\_CORRELATION\_ID\_PROPERTY\ when Micrometer Tracing is present. The \management.tracing.enabled\ property is deprecated in favor of \management.tracing.export.enabled\.
module/spring-boot-micrometer-tracing · high confidence
New auto-configuration for Spring Data Neo4j
Spring Boot now provides automatic configuration for Spring Data Neo4j, introducing new auto-configuration classes for both synchronous and reactive repositories. The \spring.data.neo4j\ properties are now used to configure the Neo4j client, template, and transaction manager. Additionally, the \spring.data.neo4j.repositories.type\ property allows users to control whether imperative, reactive, or no repositories are auto-configured. Deprecated configuration properties such as \spring.data.neo4j.uri\ and \spring.data.neo4j.password\ are now marked as errors, directing users to the new \spring.neo4j.\*\ properties.
module/spring-boot-data-neo4j, module/spring-boot-data-rest · high confidence
New auto-configuration for Spring Security OAuth 2 client support
Spring Boot now provides automatic configuration for the Spring Security OAuth 2 client. When \spring.security.oauth2.client.registration\ properties are present, the framework automatically creates \ClientRegistration\ and \OAuth2AuthorizedClientService\ beans. This includes support for both servlet and reactive web applications, with dedicated auto-configuration classes (\OAuth2ClientAutoConfiguration\, \ReactiveOAuth2ClientAutoConfiguration\) and web security filter chains that enable OAuth 2 login and client functionality. The configuration is gated by a new \ClientsConfiguredCondition\ that checks for registration properties, and the implementation maps \OAuth2ClientProperties\ to \ClientRegistration\ objects using a new \OAuth2ClientPropertiesMapper\.
module/spring-boot-security-oauth2-client · high confidence
New auto-configuration for Spring Security and actuator endpoints
The \module/spring-boot-security\ module now includes a comprehensive set of new auto-configuration classes that provide out-of-the-box security for Spring Security and Spring Boot Actuator endpoints. For servlet-based applications, \UserDetailsServiceAutoConfiguration\ and \SecurityAutoConfiguration\ set up an in-memory user and authentication event publisher. For reactive applications, \ReactiveUserDetailsServiceAutoConfiguration\ provides similar defaults. Additionally, \ManagementWebSecurityAutoConfiguration\ and \ReactiveManagementWebSecurityAutoConfiguration\ automatically permit unauthenticated access to the health endpoint while securing all other actuator endpoints. The \EndpointRequest\ factory is also introduced to simplify the creation of request matchers for actuator endpoints.
module/spring-boot-security · high confidence
New auto-configuration import and metadata infrastructure
The auto-configuration import process has been refactored with new core classes including \AutoConfiguration\ annotation, \AutoConfigurationImportSelector\, \AutoConfigurationSorter\, and metadata loaders. This introduces a more robust and extensible mechanism for discovering, filtering, sorting, and importing auto-configurations, while also providing events and filters for deeper integration and debugging of the auto-configuration lifecycle.
core/spring-boot-autoconfigure/src/main/java · high confidence
New bootstrap context and registry for early startup phase
A new \org.springframework.boot.bootstrap\ package has been introduced, providing a \BootstrapContext\ and \BootstrapRegistry\ to manage shared, potentially expensive singletons during the early startup phase before the \ApplicationContext\ is fully prepared. This includes a \BootstrapContextClosedEvent\ to signal when the bootstrap phase ends, allowing components to register themselves as regular Spring beans. This change restructures bootstrap classes into a foundational layer, enabling better separation of concerns during application initialization.
core/spring-boot/src/main/java/org/springframework/boot/bootstrap · high confidence
New build tasks to generate and document Spring Boot starters
The build system now includes new Gradle tasks that generate metadata for each starter and produce documentation tables for application, production, and technical starters. The \StarterPlugin\ registers a \StarterMetadata\ task to create a properties file with each starter's name, description, and resolved dependencies. A new \DocumentStarters\ task reads this metadata and writes Asciidoctor tables, using xref links to reference other starters. Additionally, the plugin enforces classpath checks for conflicts, unnecessary exclusions, and unconstrained direct dependencies, and sets a \Spring-Boot-Jar-Type\ manifest attribute to distinguish starter JARs.
buildSrc/src/main/java/org/springframework/boot/build/starters · medium confidence
New builders and customizers for task execution and scheduling
Spring Boot now provides dedicated builder classes to configure task executors and schedulers with greater control. New classes include SimpleAsyncTaskExecutorBuilder, SimpleAsyncTaskSchedulerBuilder, ThreadPoolTaskExecutorBuilder, and ThreadPoolTaskSchedulerBuilder, each offering fluent methods to set properties like thread name prefixes, concurrency limits, virtual threads, and task decorators. Additionally, functional interfaces (SimpleAsyncTaskExecutorCustomizer, SimpleAsyncTaskSchedulerCustomizer, ThreadPoolTaskExecutorCustomizer, ThreadPoolTaskSchedulerCustomizer) allow advanced customization of the underlying Spring Framework task components. These builders are available as beans in a typical auto-configured application, enabling developers to inject and configure them wherever a task executor or scheduler is needed.
core/spring-boot/src/main/java/org/springframework/boot/task · high confidence
New classes for configuration properties binding and metadata
Added several new classes to the Spring Boot context properties package to support configuration properties binding, including BindMethodAttribute, BoundConfigurationProperties, ConfigurationPropertiesBean, and related AOT processors and registrars. These classes provide mechanisms to track bound properties, access configuration properties bean details, and generate ahead-of-time (AOT) reflection hints for immutable configuration properties.
core/spring-boot/src/main/java/org/springframework/boot/context/properties · high confidence
New info package for application metadata and environment details
The \org.springframework.boot.info\ package has been introduced to centralize application metadata and environment information. This includes \BuildProperties\ for build-time data (group, artifact, name, version, and build timestamp), \GitProperties\ for source control details (branch, commit ID, and commit time), and specific info classes for the Java environment (\JavaInfo\), operating system (\OsInfo\), and SSL certificates (\SslInfo\), which now exposes certificates from the truststore. Additionally, \ProcessInfo\ has been expanded to include the process owner, timezone, locale, working directory, and virtual thread metrics.
core/spring-boot/src/main/java/org/springframework/boot/info · high confidence
New integration tests for embedded servlet containers
Added a new set of integration tests in the spring-boot-server-integration-tests module that validate embedded servlet container behavior for both JAR and WAR packaging types. The test suite includes a custom JUnit 5 extension (EmbeddedServerContainerInvocationContextProvider) that dynamically generates test templates for each supported container (Jetty, Tomcat) and launcher strategy (packaged, exploded, IDE, and Maven/Gradle run). This replaces the previous approach by providing a more structured and reusable way to test embedded server behavior across different deployment scenarios.
integration-test/spring-boot-server-integration-tests · high confidence
New logging configuration metadata and default logging system files
The \additional-spring-configuration-metadata.json\ file is added to expose logging properties for IDE support and validation, including new properties for Log4j2 rolling policy configuration and a \logging.console.enabled\ property to disable console logging. Default logging configuration files are also added for Java Util Logging, Logback, and Log4j2, providing out-of-the-box logging setups for console and file output. The \spring.factories\ file is updated to register the new logging systems and environment post-processors, while \aot.factories\ includes runtime hints for the logging components.
core/spring-boot/src/main/resources · high confidence
New mail auto-configuration and health indicator
The module now includes auto-configuration for the \MailSender\ bean, supporting both property-based and JNDI-based session lookup. A new \MailHealthIndicator\ is automatically registered to expose mail server connectivity status via the \/actuator/health\ endpoint, controlled by the \management.health.mail.enabled\ property. Additionally, a \MailSenderValidatorAutoConfiguration\ can be enabled via \spring.mail.test-connection\ to validate the mail server connection at startup. A failure analyzer (\NoSuchMailSenderBeanFailureAnalyzer\) provides improved diagnostics when the \MailSender\ bean is missing due to unconfigured properties.
module/spring-boot-mail · high confidence
New metrics module and actuator endpoint
The spring-boot-micrometer-metrics module now includes a new MetricsEndpoint for exposing metrics held by a MeterRegistry, along with a new MaximumAllowableTagsMeterFilter to limit tag cardinality and a ValidationFailureAnalyzer for Micrometer configuration errors. The module also introduces auto-configuration for a CompositeMeterRegistry, a MeterRegistryPostProcessor to apply customizers and filters, and integration tests for OpenTelemetry metrics export with and without SSL.
module/spring-boot-micrometer-metrics · high confidence
New system support classes for application home, PID, temp, and Java version detection
Spring Boot introduces new classes in the \org.springframework.boot.system\ package to provide access to the application home directory (\ApplicationHome\), the current process ID (\ApplicationPid\), an application-specific temporary directory (\ApplicationTemp\), and a robust Java version detection mechanism (\JavaVersion\) that now includes support for Java 26. Additionally, a \SystemProperties\ utility is added to resolve system properties or environment variables. These changes improve null-safety and provide more reliable system-level information to the framework.
core/spring-boot/src/main/java/org/springframework/boot/system · high confidence
New test infrastructure classes for Spring Boot test context
The \core/spring-boot-test\ module introduces several new classes to support the Spring Boot test framework. \AnnotatedClassFinder\ provides a utility to locate classes annotated with a specific annotation within a package hierarchy. \AnnotationsPropertySource\ adapts annotations marked with \@PropertyMapping\ into \PropertySource\ entries, enabling test annotations to populate the \Environment\. \PropertyMapping\ is a new meta-annotation that allows test annotation attributes to be mapped into the \Environment\. \PropertyMappingContextCustomizer\ and its factory apply these mappings to the test context. \ImportsContextCustomizer\ and its factory enable the use of \@Import\ annotations directly on test classes. \ConfigDataApplicationContextInitializer\ triggers the loading of \ConfigData\ such as \application.properties\. \SpringBootContextLoader\ and \SpringBootTest\ provide the core mechanism for loading the application context for Spring Boot tests. \FilteredClassLoader\ allows tests to hide specific classes or resources from the classpath. \ReactiveWebMergedContextConfiguration\ encapsulates merged context configuration for reactive web applications.
core/spring-boot-test/src/main/java/org/springframework/boot/test/context · high confidence
New test slices for Web Services client and server testing
Added new test slice annotations and auto-configuration for Spring Web Services testing. The \@WebServiceClientTest\ annotation and its supporting classes (\AutoConfigureMockWebServiceServer\, \AutoConfigureWebServiceClient\, \MockWebServiceServerAutoConfiguration\, etc.) enable auto-configuration of a \MockWebServiceServer\ and \WebServiceTemplate\ for client-side tests. Similarly, \@WebServiceServerTest\ and its supporting classes (\AutoConfigureMockWebServiceClient\, \AutoConfigureWebServiceServer\, \MockWebServiceClientAutoConfiguration\, etc.) enable auto-configuration of a \MockWebServiceClient\ for server-side endpoint tests. These changes introduce new configuration properties (\spring.test.webservice.client.mockserver.enabled\, \spring.test.webservice.client.register-web-service-template\) and a test execution listener to verify mock server state after tests.
module/spring-boot-webservices-test · high confidence
New test support containers and JUnit 5 condition for Docker availability
The spring-boot-docker-test-support module now includes a new \@DisabledIfDockerUnavailable\ JUnit 5 annotation and its associated condition class, which automatically skip tests when Docker is not available. Additionally, the module adds new container wrappers for Elasticsearch 9, Hazelcast, Mailpit, OpenLDAP, Redis Stack Server, Docker Registry, Symptoma/ActiveMQ, and Zipkin, alongside a central \TestImage\ enum that defines the Docker image references and configurations for these and other services.
test-support/spring-boot-docker-test-support · high confidence
New test support for JSON serialization and context failure reporting
Added new test annotations and auto-configuration for JSON serialization testing, including @JsonTest, @AutoConfigureJson, and @AutoConfigureJsonTesters, which provide dedicated slices for JSON-related tests and configure JSON testers. Additionally, the framework now prints the condition evaluation report to standard error when a test's ApplicationContext fails to start, controlled by the new spring.test.print-condition-evaluation-report property.
core/spring-boot-test-autoconfigure · high confidence
New test support utilities for classpath modification and resource injection
The Spring Boot test support module introduces new capabilities for managing classpaths and injecting resources in tests. A custom JUnit 5 extension allows tests to exclude, override, or fork the classpath using annotations like @ClassPathExclusions, @ClassPathOverrides, and @ForkedClassPath. Additionally, a new resources package provides annotations (@WithResource, @WithPackageResources, @WithResourceDirectory) and parameter resolvers (@ResourcePath, @ResourceContent, @ResourcesRoot) to easily inject file paths, content, or root directories into test methods.
test-support/spring-boot-test-support · high confidence
New transaction auto-configuration and customization support
The \spring-boot-transaction\ module introduces auto-configuration for Spring's transaction management, automatically providing a \TransactionTemplate\ for standard transaction managers and a \TransactionalOperator\ for reactive ones. It also adds a \TransactionManagerCustomizer\ SPI that allows users to fine-tune transaction managers via \spring.transaction\ properties (such as \defaultTimeout\ and \rollbackOnCommitFailure\) and register custom \TransactionExecutionListener\s. JTA support is also auto-configured when JNDI is present, controlled by the \spring.jta.enabled\ property.
module/spring-boot-transaction · high confidence
New web context and error handling infrastructure
The framework introduces a new set of classes to support reactive and servlet-based web application contexts, including \AnnotationConfigReactiveWebApplicationContext\, \GenericReactiveWebApplicationContext\, and their servlet counterparts, alongside a dedicated error handling package (\org.springframework.boot.web.error\) containing \ErrorPage\, \ErrorPageRegistry\, and \ErrorAttributeOptions\ for customizing error responses. These changes provide the foundational components for managing web application lifecycles and error states in both reactive and traditional servlet environments.
core/spring-boot/src/main/java/org/springframework/boot/web · high confidence
Redesign of the Tomcat web server module with new customization interfaces
The \module/spring-boot-tomcat\ module has been restructured to introduce new callback interfaces for customizing Tomcat components, including \TomcatConnectorCustomizer\, \TomcatContextCustomizer\, and \TomcatProtocolHandlerCustomizer\. This change introduces a new \ConfigurableTomcatWebServerFactory\ interface and a \TomcatWebServerFactory\ implementation that expose methods to add customizers and valves. Additionally, the module now includes a \GracefulShutdown\ implementation for handling Tomcat shutdown, a \ConnectorStartFailedException\ with a corresponding \ConnectorStartFailureAnalyzer\ for better error reporting, and a \TomcatBackgroundPreinitializer\ to optimize startup performance.
module/spring-boot-tomcat · high confidence
Servlet-specific actuator and configuration components
Added new classes to support servlet-based web applications, including auto-configuration for HTTP encoding and multipart uploads, servlet-specific implementations for actuator's HTTP exchange and mapping descriptions, and management context configuration for servlets.
module/spring-boot-servlet · high confidence
Shaded JSON library added to Spring Boot CLI
A clean-room re-implementation of the \org.json\ APIs, originally from \com.vaadin.external.google:android-json\, has been added to the Spring Boot CLI. This shaded library provides JSON parsing and generation capabilities (including \JSONObject\, \JSONArray\, \JSONTokener\, and \JSONStringer\) without the restrictive licensing of the original \org.json\ library. This change enables the CLI to handle JSON data natively, supporting features like reading and writing JSON configuration or API responses.
cli/spring-boot-cli/src/json-shade · high confidence
Smoke test for Spring Boot profile activation
Added a new smoke test module that demonstrates how to programmatically activate a Spring Boot profile using a custom EnvironmentPostProcessor. The module includes a sample application that loads different message services based on active profiles, and tests verify that the post-processor correctly sets the 'dev' profile when the 'enableEnvironmentPostProcessor' property is present.
smoke-test/spring-boot-smoke-test-profile · high confidence
Spring Boot CLI initial release
The Spring Boot CLI is now available, providing a command-line interface for interacting with Spring Boot applications. This release includes the core CLI entry point, a command runner framework, and built-in commands for help, versioning, and shell auto-completion (Bash and Zsh). Installation instructions and a Homebrew formula are also provided to facilitate setup.
cli/spring-boot-cli/src/main · high confidence
Spring Data JDBC auto-configuration and dialect resolution
Spring Boot now provides auto-configuration for Spring Data JDBC repositories. The framework automatically detects the database type and resolves the appropriate SQL dialect, supporting MariaDB and MySQL by querying the database connection. Users can also explicitly configure the dialect via the \spring.data.jdbc.dialect\ property. This change adapts the module to the Spring Data JDBC 4.0.0 API and includes new tests to verify dialect resolution.
module/spring-boot-data-jdbc · high confidence
Spring Integration auto-configuration and actuator endpoint
Spring Boot now provides automatic configuration for Spring Integration, including a default task scheduler, channel and endpoint property mapping, and JMX export. An actuator endpoint is also exposed at /actuator/integrationgraph to view and rebuild the Spring Integration component graph.
module/spring-boot-integration · high confidence
Support for Spring Batch with MongoDB
Spring Boot now provides auto-configuration for Spring Batch to use MongoDB as the job repository backend. This includes automatic setup of the Batch job repository collections and indexes in MongoDB, with optional schema initialization via \spring.batch.data.mongodb.schema.initialize\. Users can configure transaction isolation levels and validate transaction states through new \spring.batch.data.mongodb\ properties. A smoke test confirms the integration works end-to-end.
module/spring-boot-batch-data-mongodb, smoke-test/spring-boot-smoke-test-batch-data-mongodb · high confidence
Support for asynchronous JPA bootstrapping
Spring Boot now supports asynchronous JPA bootstrapping, allowing the application context to start before the JPA EntityManagerFactory is fully initialized. This is configured via the new \spring.jpa.bootstrap\ property, which can be set to \async\ to enable background initialization. When asynchronous bootstrapping is enabled, a bootstrap executor is required; if none is provided, the application will fail to start with a clear error message and a \FailureAnalyzer\ that suggests providing an \AsyncTaskExecutor\ or using the \EntityManagerFactoryBuilderCustomizer\ to configure one.
module/spring-boot-jpa · high confidence
Upgrade to Jackson 3 and add CBOR support
Spring Boot now auto-configures Jackson 3, introducing new configuration properties for Jackson's read and write features, and adds auto-configuration for Jackson's CBOR data format. The module also introduces new annotations (@JacksonComponent, @JacksonMixin) and corresponding modules to simplify registering custom serializers, deserializers, and mixin classes.
module/spring-boot-jackson · high confidence
Architecture
Build system restructured with new convention plugins
The build system has been refactored to use a new set of convention plugins in buildSrc. This introduces dedicated convention classes for Java, Kotlin, Eclipse, Antora documentation, Maven publishing, and more, each applied via the new ConventionsPlugin. This change reorganizes how the build is configured, ensuring consistent application of compiler flags, test configurations, and IDE settings across all subprojects.
buildSrc/src/main/java/org/springframework/boot/build · high confidence
Gradle plugin refactored into a modular plugin-action architecture
The Spring Boot Gradle plugin has been refactored from a monolithic implementation into a modular architecture where each Gradle plugin (Java, Kotlin, Protobuf, etc.) triggers a specific, isolated action class. This change introduces a new \SpringBootExtension\ DSL entry point and restructures internal task configuration—such as \bootBuildInfo\, \bootJar\, and \bootWar\—to use these new action classes. Users benefit from improved maintainability and clearer separation of concerns within the build plugin, though the external DSL and task behaviors remain largely consistent.
build-plugin/spring-boot-gradle-plugin/src/main · high confidence
Behavioural changes
Add Spring Data JPA auto-configuration with deferred bootstrap mode support
The Spring Boot auto-configuration for Spring Data JPA repositories has been restructured and enhanced. A new \DataJpaRepositoriesAutoConfiguration\ class now manages the setup of JPA repositories, including support for Spring Data Envers revision repositories. A key behavioral change is the introduction of a \spring.data.jpa.repositories.bootstrap-mode\ property, which allows users to configure the JPA bootstrap mode. When set to \deferred\, the configuration ensures that the \EntityManagerFactory\ is initialized lazily using a provided \BootstrapExecutor\, improving startup performance for large applications. The configuration also includes metadata for the \spring.data.jpa.repositories.enabled\ property to control the auto-configuration's activation.
module/spring-boot-data-jpa · high confidence
Add nullability annotations and restructure Spring Boot smoke test
The Spring Boot smoke test for the 'no Mockito' scenario has been restructured to include explicit nullability annotations. A new \package-info.java\ file was added to the \smoketest.testnomockito\ package, marking it as \@NullMarked\ via the \org.jspecify.annotations.NullMarked\ annotation. Additionally, the main application class \SampleTestNoMockitoApplication\ was created to serve as the entry point for the test, and the test class \SampleTestNoMockitoApplicationTests\ was added to verify that the application context loads correctly without Mockito on the classpath.
smoke-test/spring-boot-smoke-test-test-nomockito · medium confidence
Antora documentation build configuration and attribute mappings
The build system now uses Antora for generating documentation, introducing a new \antora-asciidoc-attributes.properties\ file that maps Javadoc URLs for Spring Data, Jackson, gRPC, and other libraries, alongside code and API reference links. A new \antora-playbook-template.yml\ template configures the Antora site title, pagination, and extension settings, replacing the previous documentation generation approach.
buildSrc/src/main/resources/org/springframework/boot/build/antora · high confidence
Build verification tasks for Spring factories
Added Gradle tasks (CheckAotFactories, CheckSpringFactories) that validate META-INF/spring.factories and META-INF/spring/aot.factories files. The new verification logic checks that all listed classes exist on the classpath and that entries are sorted alphabetically, failing the build with a detailed report if issues are found.
buildSrc/src/main/java/org/springframework/boot/build/springframework · high confidence
Enforce architecture rules for auto-configuration classes
The build system now enforces that auto-configuration classes are public and final, and have no public members. It also prohibits the use of @ConditionalOnClass on @Bean methods, ensures @ConfigurationProperties beans are static, and prevents unnecessary values on @ConditionalOnMissingBean. Additionally, it bans calls to Objects.requireNonNull(), String.toLowerCase/toUpperCase without Locale, and URLEncoder/URLDecoder with string encodings.
buildSrc/src/main/java/org/springframework/boot/build/architecture · medium confidence
Enhanced ANSI color and style support for terminal output
The ANSI output subsystem has been expanded to support 8-bit color codes (Ansi8BitColor) alongside the existing 16-color (AnsiColor, AnsiBackground) and style (AnsiStyle) enums. This allows applications to use a broader palette of colors in their console logs. Additionally, the automatic detection of ANSI capability has been updated to recognize Windows 11 and Windows Server 2025 as ANSI-compatible terminals, ensuring colored output is enabled on these modern Windows versions.
core/spring-boot/src/main/java/org/springframework/boot/ansi · high confidence
Ensure HttpMessageConverters are configured before RestClients
A new auto-configuration class, Gh49223AutoConfiguration, is introduced to ensure that HttpMessageConverters are configured before RestClients. This is achieved by placing the auto-configuration class in a package that is ordered early, and by using the @AutoConfiguration annotation with afterName attributes for RestClientAutoConfiguration and RestTemplateAutoConfiguration. A corresponding test, SampleRestClientApplicationGh49223Tests, verifies that the JacksonJsonHttpMessageConverter is properly configured with specific deserialization features.
smoke-test/spring-boot-smoke-test-restclient · medium confidence
Gradle toolchain configuration for Java 16 and test JVM args
The build system now supports configuring the Java toolchain version and passing additional JVM arguments to tests. A new \ToolchainExtension\ and \ToolchainPlugin\ allow projects to specify a \toolchainVersion\ and \testJvmArgs\. The plugin configures the Java toolchain for tests and disables test tasks if the specified Java version is not compatible with the project's minimum compatible Java version.
buildSrc/src/main/java/org/springframework/boot/build/toolchain · medium confidence
Homebrew formula generation refactored to use Gradle's FileSystemOperations
The Homebrew formula generation task in the build system has been updated to use Gradle's FileSystemOperations for file copying and expansion, replacing the previous approach. This change also introduces a check to skip Homebrew formula creation for non-open-source builds, ensuring the formula is only generated for the OSS build type.
buildSrc/src/main/java/org/springframework/boot/build/cli · high confidence
Improved WebFlux application type detection and actuator endpoint mapping
Spring Boot now includes a dedicated WebFluxWebApplicationTypeDeducer that ensures reactive applications are correctly identified as using the REACTIVE application type. Additionally, the actuator endpoint mapping for WebFlux has been refactored into new handler mapping classes (AbstractWebFluxEndpointHandlerMapping, WebFluxEndpointHandlerMapping, etc.) to better support null-safety, CORS configuration, and runtime hints for native image compatibility. The HTTP exchange tracking for WebFlux has also been updated to use the new reactive web filter implementation.
module/spring-boot-webflux · high confidence
Improved diagnostic messages for application startup failures
The framework now provides structured, user-friendly error messages for common startup failures such as circular dependencies, bean definition overrides, and property binding errors. These improvements are implemented via new \FailureAnalyzer\ classes in the \springframework.boot.diagnostics\ package, which analyze exceptions and produce a \FailureAnalysis\ containing a clear description and actionable steps. This results in more helpful error output when the application fails to start.
core/spring-boot/src/main/java/org/springframework/boot/diagnostics · high confidence
Improved validation error reporting with origin tracking
The binding validation subsystem now provides more detailed error reporting. A new \BindValidationException\ is thrown when validation fails, carrying a \ValidationErrors\ collection that includes \OriginTrackedFieldError\ instances. This allows users to see the specific configuration property or source origin that caused each validation failure, making it easier to debug binding issues.
core/spring-boot/src/main/java/org/springframework/boot/context/properties/bind/validation · high confidence
Improved version comparison and upgrade detection for Spring Boot dependencies
The build system now uses a new \DependencyVersion\ hierarchy to more accurately compare and sort dependency versions. This refactoring improves how Spring Boot identifies available upgrades, particularly for calendar versions (which are now treated as newer than release train versions), snapshots, and versions with multiple numeric components. Users will see more accurate upgrade suggestions in the build output, with fixes for edge cases like identical snapshots and changes in the number of numeric components.
buildSrc/src/main/java/org/springframework/boot/build/bom/bomr/version · high confidence
Internal JSON parsing library shaded into Spring Boot configuration metadata module
A shaded copy of the Android JSON library (including classes like JSONObject, JSONArray, JSONTokener, and JSONStringer) has been added to the spring-boot-configuration-metadata module. This provides an internal, Apache-licensed JSON implementation for parsing and generating configuration metadata, removing the external dependency on org.json and ensuring consistent shading of the JSON library within the project.
configuration-metadata/spring-boot-configuration-metadata · high confidence
Introduce ArtifactRelease class to manage artifact release types and download repositories
A new Java class, ArtifactRelease, has been added to the build source code. This class encapsulates logic for determining whether a build produces a SNAPSHOT, MILESTONE, or RELEASE artifact, and maps each type to its corresponding download repository (Spring's snapshot repository or Maven Central). This change supports the build system in correctly identifying artifact types and directing users to the appropriate download location based on the version string.
buildSrc/src/main/java/org/springframework/boot/build/artifacts · high confidence
Introduce automated validation of Spring configuration metadata
The build now includes new Gradle tasks that validate Spring configuration metadata files for consistency. These checks enforce that properties are sorted alphabetically, contain descriptions, and do not contain duplicates. The system also verifies that deprecated properties include a 'since' version and that any replacement property actually exists. If any of these checks fail, the build will fail, ensuring the generated documentation and IDE support remain accurate.
buildSrc/src/main/java/org/springframework/boot/build/context · high confidence
Introduction of Threading enum to control virtual thread activation
The Threading enum has been moved from spring-boot-autoconfigure to the core spring-boot module, providing a centralized way to determine whether platform or virtual threads are active based on the spring.threads.virtual.enabled property and Java version.
core/spring-boot/src/main/java/org/springframework/boot/thread · high confidence
Maven plugin build infrastructure migrated to Gradle
The buildSrc module for the Maven plugin has been ported from a Maven-based build to a Gradle-based one. This introduces new Gradle tasks and Java classes (such as DocumentPluginGoals, MavenExec, and PrepareMavenBinaries) to handle plugin documentation generation, Maven execution, and binary preparation. The migration includes updating copyright years, enforcing consistent section IDs in documentation, and ensuring that integration tests run when Maven binaries change.
buildSrc/src/main/java/org/springframework/boot/build/mavenplugin · medium confidence
Maven plugin refactored with new base classes and null-safety improvements
The Spring Boot Maven plugin has been refactored to use new abstract base classes—AbstractAotMojo, AbstractDependencyFilterMojo, AbstractPackagerMojo, and AbstractRunMojo—which consolidate common logic for AOT processing, dependency filtering, packaging, and running applications. This restructuring improves null-safety across the plugin and introduces default exclusions for optional dependencies and Spring Boot devtools from the repackaged archive. Additionally, the plugin now supports loading layer configurations from the plugin classpath and excludes spring-boot-devtools from AOT processing by default.
build-plugin/spring-boot-maven-plugin/src/main/java · high confidence
Migrate JSON processing to Jackson 3 and introduce streaming support
The Spring Boot buildpack platform now uses Jackson 3 (via the \tools.jackson\ package) for JSON processing, replacing the previous \ObjectMapper\-based approach with a shared \JsonMapper\ instance. This change introduces a new \JsonStream\ utility for streaming JSON parsing and adds nullability annotations to improve type safety. Users benefit from updated JSON handling that aligns with the latest Jackson API, while the \MappedObject\ and \SharedJsonMapper\ classes are refactored to use the new mapper, ensuring consistent configuration (e.g., lower camel case, indented output) across the platform's JSON operations.
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/json · high confidence
Redeploy Groovy template auto-configuration with simplified properties and deprecations
The Groovy template auto-configuration has been restructured into new classes (GroovyTemplateAutoConfiguration, GroovyTemplateProperties, etc.) that map directly to the 'spring.groovy.template' namespace. Properties under 'spring.groovy.template.configuration' are now deprecated in favor of the flatter 'spring.groovy.template.\*' keys. The confusing 'spring.groovy.template.enabled' property has been removed entirely. The configuration now uses PropertyMapper for binding and supports nullability annotations. Tests have been added to verify the new auto-configuration behavior.
module/spring-boot-groovy-templates · medium confidence
Redesign of Logback logging system and structured log formatters
The Logback logging system has been refactored to use a programmatic configuration approach via the new \LogbackConfigurator\ class, replacing the previous XML-based configuration for improved startup performance. This change introduces several new Logback converters, including \ColorConverter\ for ANSI colorized output, \CorrelationIdConverter\ for MDC-based correlation IDs, \EnclosedInSquareBracketsConverter\ for optional value formatting, and \ExtendedWhitespaceThrowableProxyConverter\ for stack traces. Additionally, the \DefaultLogbackConfiguration\ now explicitly sets the file logging charset to UTF-8, and the \LogbackLoggingSystem\ has been updated to avoid removing application-managed JUL bridge handlers.
core/spring-boot/src/main/java/org/springframework/boot/logging/logback · high confidence
Refactor buildpack build logic and improve null-safety
The buildpack build logic has been restructured into new classes including \AbstractBuildLog\, \ApiVersions\, \BuildLog\, \BuildOwner\, \BuildRequest\, \Builder\, \BuilderBuildpack\, \BuilderDockerConfiguration\, \BuilderException\, \BuilderMetadata\, \Buildpack\, and \BuildpackCoordinates\. This refactoring improves null-safety by adding \@Nullable\ annotations and updating the \BuildLog\ interface to support structured logging of buildpack lifecycle events. The \Builder\ class now uses a \BuildLog\ for output and manages the build process through a \BuildRequest\ that encapsulates all build parameters. Additionally, the codebase has been reorganized to better fit Gradle conventions, and nullability annotations have been added across the buildpack platform module.
buildpack/spring-boot-buildpack-platform/src/main/java/org/springframework/boot/buildpack/platform/build · medium confidence
Refactor configuration metadata processing to support source metadata and improved nullness signals
The configuration metadata processor has been refactored to support source metadata, allowing configuration properties to inherit metadata from their source types. This change introduces new classes like ConfigurationPropertiesSourceResolver and various PropertyDescriptor implementations (ConstructorParameter, JavaBean, Lombok) to handle property resolution. Additionally, the processor now supports additional nullness signals for Actuator endpoints, improving how nullability is detected and processed for endpoint methods.
configuration-metadata/spring-boot-configuration-processor/src/main · medium confidence
Refactored FreeMarker auto-configuration into modular, context-specific classes
The FreeMarker auto-configuration has been restructured to separate concerns for different web environments. A new \FreeMarkerAutoConfiguration\ acts as the main entry point, delegating to \FreeMarkerServletWebConfiguration\ for servlet-based applications, \FreeMarkerReactiveWebConfiguration\ for reactive web applications, and \FreeMarkerNonWebConfiguration\ for non-web contexts. This modularization allows each environment to register only the beans it needs, such as the \FreeMarkerViewResolver\ and \FreeMarkerConfigurer\ specific to the web stack. Additionally, a \FreeMarkerVariablesCustomizer\ interface was introduced, enabling users to provide beans that customize FreeMarker shared variables in a consistent manner across all environments.
module/spring-boot-freemarker · high confidence
Refactored HTTP message converter auto-configuration
The HTTP message converter auto-configuration has been refactored to use a new \HttpMessageConverters\ builder API for both client and server sides. This change introduces dedicated customizer interfaces (\ClientHttpMessageConvertersCustomizer\ and \ServerHttpMessageConvertersCustomizer\) and default implementations that handle the registration of JSON, XML, and string converters. The configuration now explicitly supports Jackson 3, Jackson 2 (deprecated), Gson, JSON-B, and Kotlin Serialization, with a new \spring.http.converters.preferred-json-mapper\ property to control the active JSON mapper. The legacy \HttpMessageConverters\ class is now deprecated.
module/spring-boot-http-converter · high confidence
Refactored JSON parsing and writing with improved null-safety and performance
The JSON support in Spring Boot has been refactored to improve null-safety and performance. A new \AbstractJsonParser\ base class and \JsonParseException\ were introduced to standardize parsing logic and error handling. The \JsonParserFactory\ now prioritizes Jackson 3 (\JsonMapper\) over Gson and the built-in \BasicJsonParser\. Additionally, the \WritableJson\ interface and \AppendableByteArray\ implementation were added to reduce memory pressure and garbage collection overhead during JSON serialization.
core/spring-boot/src/main/java/org/springframework/boot/json · high confidence
Refactored Spring Boot loader internals with new helper classes
The Spring Boot loader module has been refactored to improve internal structure and resource management. New helper classes have been introduced: \JarEntriesStream\ for iterating and validating jar entries, \ManifestInfo\ for parsing manifest data, \MetaInfVersionsInfo\ for handling \META-INF/versions/\ directories, \SecurityInfo\ for managing certificate and code signer details, and \ZipInflaterInputStream\ for efficient zip inflation. Additionally, the \Archive\ interface and its implementations (\ExplodedArchive\, \JarFileArchive\) have been updated to support classpath indexing via \ClassPathIndexFile\, allowing for optimized classpath loading in exploded archives.
loader/spring-boot-loader · high confidence
Refactored actuator auto-configuration to use a new endpoint availability condition
The actuator auto-configuration module has been restructured to introduce a new \@ConditionalOnAvailableEndpoint\ annotation and its supporting classes (\OnAvailableEndpointCondition\, \EndpointExposureOutcomeContributor\). This change centralizes the logic for determining if an actuator endpoint is enabled and exposed, replacing the previous scattered checks with a unified condition that evaluates both endpoint enablement and exposure (web/JMX) before triggering auto-configuration. Additionally, the \PropertiesEndpointAccessResolver\ was introduced to manage endpoint access levels via configuration properties, and various endpoint auto-configurations (such as for audit, beans, conditions, context, and general endpoints) were reorganized into new sub-packages and classes to align with this new conditional model.
module/spring-boot-actuator-autoconfigure · high confidence
Refactored auto-configuration build tasks to use new Gradle task classes
The build system for auto-configuration metadata has been restructured into new Gradle task classes: AutoConfigurationClass, AutoConfigurationMetadata, AutoConfigurationPlugin, CheckAutoConfigurationClasses, CheckAutoConfigurationImports, and DocumentAutoConfigurationClasses. These changes replace the previous implementation, introducing a more modular and robust approach to generating and validating auto-configuration metadata and documentation.
buildSrc/src/main/java/org/springframework/boot/build/autoconfigure · high confidence
Refactored config data loading into new classes
The config data loading mechanism has been refactored into a new set of classes including ConfigData, ConfigDataEnvironment, ConfigDataEnvironmentContributor, and ConfigDataEnvironmentPostProcessor. This restructuring improves null-safety and organizes the bootstrap and environment processing logic into a more modular and foundational layer, making it easier to understand and extend the configuration loading process.
core/spring-boot/src/main/java/org/springframework/boot/context/config · high confidence
Refactored configuration property source architecture with caching and aliasing support
The configuration property source layer has been restructured to introduce a new \ConfigurationProperty\ model and a \ConfigurationPropertyCaching\ interface that allows enabling, disabling, and overriding property source caches with time-to-live controls. The change adds \AliasedConfigurationPropertySource\ and \AliasedIterableConfigurationPropertySource\ wrappers that resolve property lookups using configured name aliases, and introduces \ConfigurationPropertyNameAliases\ to manage these mappings. Additionally, a \DefaultPropertyMapper\ with last-mapping caching is introduced to optimize name conversions, and the \ConfigurationPropertySources\ utility now attaches a dedicated property source to the environment to centralize access to configuration property sources.
core/spring-boot/src/main/java/org/springframework/boot/context/properties/source · high confidence
Refactored core application startup and environment handling
The core application startup logic has been restructured to improve null-safety and separate concerns. A new \ApplicationContextFactory\ interface and \DefaultApplicationContextFactory\ implementation allow for customizable context creation, while \ApplicationEnvironment\ and \EnvironmentConverter\ handle environment setup and conversion. The \ApplicationProperties\ class now explicitly manages startup properties like \allowBeanDefinitionOverriding\ and \lazyInitialization\. Additionally, \AotInitializerNotFoundException\ was added to handle missing AOT initializers, and \ApplicationInfoPropertySource\ was updated to move to the end of the property sources. These changes streamline how the application context is created and configured at startup.
core/spring-boot/src/main/java/org/springframework/boot · high confidence
Refactored environment property loading and source management
The \env\ package has been restructured to improve null-safety and modularity. New classes have been introduced to handle specific property sources: \ConfigTreePropertySource\ for directory-based properties, \DefaultPropertiesPropertySource\ for default application properties, and \OriginTrackedMapPropertySource\ to track property origins. The \OriginTrackedPropertiesLoader\ and \OriginTrackedYamlLoader\ now provide detailed origin information for loaded properties. Additionally, the \EnvironmentPostProcessor\ interface has been deprecated in favor of a new \EnvironmentPostProcessor\ in the root package, and the \PropertySourceInfo\ interface was removed, with its \isImmutable\ and \getPrefix\ methods moved to the new \PropertySourceInfo\ interface.
core/spring-boot/src/main/java/org/springframework/boot/env · high confidence
Refactored health endpoint implementation
The health endpoint implementation has been restructured to improve reusability and support for reactive health checks. This includes moving actuator health code into the new \module/spring-boot-health\ module, introducing a \Contributor\ abstraction to handle both blocking and reactive health contributors uniformly, and adding nullability annotations to improve type safety. The refactoring also supports additional health endpoint paths and considers reactive indicators in the \HealthEndpointGroupMembershipValidator\.
module/spring-boot-health · medium confidence
Refactored logging system with deferred logging and correlation ID support
The logging subsystem has been refactored to support deferred logging, allowing log messages to be captured before the logging system is fully initialized, and to format correlation IDs according to W3C trace-context recommendations. New classes such as DeferredLog, DeferredLogFactory, and CorrelationIdFormatter enable more robust logging during startup, while the abstract logging system now supports configurable correlation ID formatting and improved null-safety for logging operations.
core/spring-boot/src/main/java/org/springframework/boot/logging · medium confidence
Refactored property binding infrastructure with new core classes
The property binding mechanism has been refactored to improve null-safety and structure. A new \AbstractBindHandler\ base class and \BindContext\ interface have been introduced to manage binding state and callbacks. The \Binder\ class now utilizes a \BindConverter\ for type conversion and supports a \BindMethod\ (Java Bean or Value Object) to determine how to bind data objects. Additionally, an \AggregateBinder\ strategy handles Maps, Lists, and Arrays, while \BindResult\ provides a container for bind outcomes.
core/spring-boot/src/main/java/org/springframework/boot/context/properties/bind · high confidence
Refactored web server configuration model and improved null-safety
The web server configuration model has been refactored to improve null-safety and encapsulation. The \AbstractConfigurableWebServerFactory\ and \ConfigurableWebServerFactory\ interfaces have been updated to use \@Nullable\ annotations and support \SslBundles\ for more flexible SSL configuration. Additionally, the \Cookie\ class now exposes a \partitioned\ property, allowing users to configure the Partitioned cookie attribute, and the \Compression\ class now supports an \additionalMimeTypes\ list for fine-grained control over which MIME types are compressed.
module/spring-boot-web-server · high confidence
Relocate and restructure environment post-processing infrastructure
The \EnvironmentPostProcessor\ interface and its implementations (including \AnsiOutputApplicationListener\, \EnvironmentPostProcessorApplicationListener\, \RandomValuePropertySourceEnvironmentPostProcessor\, \SpringApplicationJsonEnvironmentPostProcessor\, and \SystemEnvironmentPropertySourceEnvironmentPostProcessor\) have been moved to the \org.springframework.boot.support\ package. A new \EnvironmentPostProcessorsFactory\ interface and its implementations (\SpringFactoriesEnvironmentPostProcessorsFactory\, \ReflectionEnvironmentPostProcessorsFactory\) have been introduced to manage the creation of these processors. This change also introduces a deprecated adapter for the previous \EnvironmentPostProcessor\ signature to ensure backward compatibility with existing custom processors.
core/spring-boot/src/main/java/org/springframework/boot/support · high confidence
Repackager refactored into new tooling classes
The repackaging logic has been restructured into a new set of classes in the \spring-boot-loader-tools\ module, including \AbstractJarWriter\, \BuildPropertiesWriter\, \ImagePackager\, \JarWriter\, and \Layout\ strategies. This refactoring introduces null-safety annotations and improves the internal architecture for handling JAR and WAR layouts, layer resolution, and image packaging.
loader/spring-boot-loader-tools · medium confidence
Restructure Spring Data MongoDB auto-configuration
The Spring Data MongoDB auto-configuration classes have been restructured and renamed to follow a consistent naming convention, with \DataMongoAutoConfiguration\ and related classes now residing in the \org.springframework.boot.data.mongodb.autoconfigure\ package. This change aligns the module's internal structure with the new \spring-boot-data-mongodb\ module layout, ensuring that auto-configuration for synchronous and reactive MongoDB templates, repositories, and GridFS operations is correctly registered and discovered by Spring Boot's auto-configuration mechanism.
module/spring-boot-data-mongodb · high confidence
Restructured OAuth2 resource server auto-configuration with new customizers and conditions
The OAuth2 resource server auto-configuration has been refactored to improve modularity and extensibility. New conditional annotations (ConditionalOnIssuerLocationJwtDecoder, ConditionalOnJwkSetUriJwtDecoder, ConditionalOnPublicKeyJwtDecoder) and their associated Spring Boot conditions (IssuerUriCondition, JwkSetUriCondition, KeyValueCondition) now control the creation of JWT decoders based on the presence of specific properties (issuer-uri, jwk-set-uri, public-key-location). The configuration is split into dedicated classes (JwtDecoderConfiguration, JwtConverterConfiguration, OpaqueTokenIntrospectionConfiguration) that support builder customizers (JwkSetUriJwtDecoderBuilderCustomizer, SpringOpaqueTokenIntrospectorBuilderCustomizer), allowing users to customize the builder instances before they are built. Additionally, the reactive JWT decoder configuration has been separated into its own package (reactive) with corresponding customizers (JwkSetUriReactiveJwtDecoderBuilderCustomizer).
module/spring-boot-security-oauth2-resource-server · high confidence
Spring Boot Docker Compose module adds default properties and application listeners
The spring-boot-docker-compose module now contributes to Devtools' default properties by adding a new spring-devtools.properties file that sets defaults.spring.docker.compose.readiness.wait to only-if-started. Additionally, the module registers two new application listeners via spring.factories: DockerComposeListener and DockerComposeServiceConnectionsApplicationListener, enabling lifecycle and connection management for Docker Compose services.
core/spring-boot-docker-compose/src/main/resources · high confidence
Spring Boot auto-configuration and metadata files restructured
The project's auto-configuration metadata and factory files have been restructured. A new \additional-spring-configuration-metadata.json\ file defines configuration properties, including deprecation notices for \spring.resources.\\ and \spring.git.properties\ in favor of \spring.web.\\ and \spring.info.\*\ namespaces. Default values for error handling and resource caching are now specified in \spring-devtools.properties\. The \spring.factories\ file registers auto-configuration import listeners, filters, and failure analyzers, while \aot.factories\ and \AutoConfiguration.imports\ define AOT processing and auto-configuration classes.
core/spring-boot-autoconfigure/src/main/resources · high confidence
Spring Boot test context customizers consolidated into spring-boot-test module
The Spring Boot test framework has been restructured to consolidate test-related context customizers and initializers into the spring-boot-test module. This change registers new context customizers for handling imports, property mapping, type exclusion filters, and JSON object duplication, alongside an application context initializer for excluding filters. This consolidation supports the modularization of the test infrastructure, ensuring that test-specific Spring Boot features are properly initialized and configured within the spring-boot-test module.
core/spring-boot-test/src/main/resources · high confidence
Thymeleaf auto-configuration restructured for Spring Boot 4.0
The Thymeleaf auto-configuration has been restructured for Spring Boot 4.0, introducing new configuration classes for template engines and view resolvers. The \spring.thymeleaf.enabled\ property is now deprecated, and the module now supports both Servlet and Reactive web applications with dedicated configuration classes. The auto-configuration is now final and public members have been removed. Tests have been added for both servlet and reactive auto-configuration scenarios.
module/spring-boot-thymeleaf · high confidence
Updated Eclipse Oomph setup for Spring Boot 4.1.x
The Eclipse project setup has been updated to target Spring Boot 4.1.x, configuring the development environment with Java 24 and 17 JREs, and installing specific Eclipse plugins including Spring Java Format, m2e, Buildship, and WST. The setup now organizes the workspace into functional working sets (such as core, module, loader, and build-plugin) and enables nested project visibility for Gradle imports.
eclipse · high confidence
Test coverage
Add Jackson 2 smoke tests; Add OAuth2 client smoke test with multiple provider configurations; Add OpenTelemetry smoke test for environment variable mapping; Add Prometheus smoke test for metrics exemplar export; Add R2DBC integration tests for Docker Compose and Testcontainers; Add Spring gRPC client smoke test; Add WAR TLD loader integration test; Add devtools smoke test with integration tests for static resources; Add integration test for annotated configuration properties; Add integration tests for OTLP logging connection details; Add integration tests for RabbitMQ Stream and SSL support in Docker Compose and Testcontainers; Add integration tests for Redis auto-configuration and connection details; Add integration tests for Spring Boot DevTools; Add integration tests for Spring Pulsar auto-configuration; Add integration tests for the TestFailuresPlugin; Add smoke test for OAuth2 Authorization Server configuration; Add smoke test for OAuth2 resource server JWT authentication; Add smoke test for custom actuator extension; Add smoke test for secure Jersey integration; Add smoke test for serving static web content; Add smoke test for structured logging customizers; Add smoke tests for Spring Boot AMQP with SSL support; Add smoke tests for Spring Boot Data Cassandra with SSL; Add smoke tests for Spring Boot with Jersey; Add smoke tests for Tomcat-based Spring Boot applications; Add smoke tests for mixed Jackson 2 and 3 presence; Add smoke tests for secure web application error pages; Add system tests for Spring Boot WAR deployment; Added @DataElasticsearchTest for isolated Data Elasticsearch testing; Added @DataNeo4jTest slice for Neo4j data tests; Added @DataRedisTest annotation and supporting classes for Redis test slices; Added AutoConfigureWebServer test annotation; Added Gradle test infrastructure for compatibility and style checks; Added NodeAssert for XML node assertions; Added build infrastructure for Docker, integration, and system test suites; Added build script to report test failures; Added build tasks to validate auto-configuration imports and document test slices; Added documentation tests for actuator endpoints; Added integration and unit tests for the Gradle build-info task; Added integration and unit tests for the Spring Boot BOM plugin; Added integration tests for BootBuildImage; Added integration tests for Data JPA and Cache test slices; Added integration tests for Docker API, CLI command loading, Kotlin context loading, and error page filtering; Added integration tests for JDBC Docker Compose and Testcontainers factories; Added integration tests for Maven plugin image building and CLI hint command; Added integration tests for SSL configuration with SNI; Added integration tests for Spring Boot Gradle plugin actions; Added integration tests for Spring Boot's web server test environment; Added integration tests for actuator endpoints; Added integration tests for the ConventionsPlugin; Added integration tests for the Gradle DSL build-info task; Added integration tests for the Spring Boot loader; Added integration tests for the optional dependencies plugin; Added smoke test for Tomcat multi-connector configuration; Added smoke test for WebFlux Redis session management; Added smoke tests for Spring Boot R2DBC and WebFlux coroutines; Added smoke tests for WebApplicationType deduction and configuration; Added system output capture classes for testing; Added test coverage for Kotlin-specific Spring Boot features; Added test fixtures for Docker Compose integration testing; Added test infrastructure for Gradle plugin classpath resolution; Added test resources for Gradle plugin integration tests; Added test resources for Spring Boot test infrastructure; Added test support for custom TypeExcludeFilter classes; Added test utility classes for application context and property values; Added tests for CLI command execution and project initialization; Added tests for Data R2DBC auto-configuration; Added tests for Docker Compose core components; Added tests for Gradle plugin bundling tasks; Added tests for JSON test utilities; Added tests for JUnit 4 OutputCaptureRule and JUnit 5 OutputCapture/OutputCaptureExtension; Added tests for LocalTestWebServer and DisableReactorResourceFactory; Added tests for PluginXmlParser; Added tests for Spring Boot test context infrastructure; Added tests for SpringRepositoriesExtension; Added tests for TestSliceMetadata serialization; Added tests for artifact release type and repository resolution; Added tests for auto-configuration documentation generation; Added tests for build-time configuration properties processing; Added tests for configuration metadata generation; Added tests for the new @DataCassandraTest annotation; Added tests for the new @DataCouchbaseTest annotation; Added tests for the new @DataLdapTest annotation; Added tests for the new @DataMongoTest annotation; Added tests for the new @WebClientTest slice; Added tests for the new LocalRSocketServerPort annotation; Added tests for the new jOOQ test slice; Added tests for web server port injection and HTML unit client behavior; Added unit and integration tests for Spring Boot auto-configuration; Added unit tests for Antora documentation build components; Added unit tests for ApplicationContextTestUtils and TestPropertyValues; Added unit tests for Spring Boot Maven plugin components; Added unit tests for Spring Boot buildpack platform classes; Added unit tests for dependency version parsing and comparison logic; Added unit tests for the BOM upgrade and release schedule logic; Added unit tests for the changelog generator; Adds system tests for Spring Boot image building and container assertions; Expanded architecture check test coverage; Expanded integration test coverage for the Spring Boot Maven plugin; New HTTP client and server testing utilities; New JSON assertion and tester utilities for Spring Boot tests; New test fixtures for auto-configuration and JNDI testing; New test support classes for web server ports and HTML Unit integration; Restructure Maven plugin integration tests; Tests for WebFlux test slice auto-configuration.
Dependencies
Updated Gradle wrapper to version 9.6.1
The Gradle wrapper has been upgraded to version 9.6.1. This change updates the build tooling to use the specified Gradle distribution, ensuring consistent build environments across all development and CI systems.
gradle · high confidence
Updated dependencies and build tooling
The project has updated a wide range of dependencies and build tools, including upgrades to Spring Framework, Spring Security, Tomcat, Jackson, Kotlin, and various other libraries. Additionally, the build system has been updated to use Gradle 9.1.0, and the Gradle Enterprise plugin has been upgraded.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Baseline
- First survey — no prior run to compare against. CAI 47.
Lenses
- Code Health 89
- Architecture 100
- Maturity 60
- Readiness 42
- Security 51
- Domain Modelling 69
- Accessibility 40
Changes since last survey
- 300 commits — 289 feature/other, 11 fixes
By area
- (repo) — 112 commits
- platform/spring-boot-dependencies — 66 commits
- spring-boot-project/spring-boot-dependencies — 40 commits
- (root) — 13 commits
- documentation/spring-boot-docs — 13 commits
- core/spring-boot — 8 commits
- module/spring-boot-cloudfoundry — 4 commits
- .github/workflows — 3 commits
- module/spring-boot-security-oauth2-resource-server — 3 commits
- .github/actions — 2 commits
- antora/package-lock.json — 2 commits
- cli/spring-boot-cli — 2 commits
- core/spring-boot-test — 2 commits
- module/spring-boot-graphql — 2 commits
- module/spring-boot-jdbc — 2 commits
- module/spring-boot-jpa — 2 commits
- module/spring-boot-opentelemetry — 2 commits
- spring-boot-project/spring-boot-autoconfigure — 2 commits
- .idea/scopes — 1 commit
- build-plugin/spring-boot-gradle-plugin — 1 commit
Notable commits
- fix: Fix Javadoc for GraylogExtendedLogFormatProperties
- fix: Fix forwarded headers property in cloud deployment docs
- fix: Fix key for the MongoDB health indicator in reference guide
- fix: Fix placeholder syntax in external config docs
- fix: Fix predictable temp directory in Artemis embedded configuration
- fix: Polish "Fix forwarded headers property in cloud deployment docs"
- fix: Polish "Fix placeholder syntax in external config docs"
- fix: Revert "Pin Antora's Node version to 24.14.1"
- fix: Revert "Upgrade to Netty 4.2.15.Final"
- fix: Revert "Upgrade to Netty 4.2.15.Final"
- fix: Revert "Upgrade to Oracle Database 23.26.2.0.0"
- change: Add Spring gRPC properties
- change: Add WAR TLD loader integration test
- change: Add missing or outdated copyright headers
- change: Add nested override coverage for @SpringBootTest imports
- change: Address new warnings from NullAway 0.13.6
- change: Align Prometheus Client dependency with Micrometer
- change: Align W3CHeaderParser decoding with RFC 3986
- change: Align docs with changes to Gradle gRPC configuration
- change: Align docs with recent changes
- …and 280 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
spring-projects/spring-boot was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 5 August 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 7a89c31f91056298f2fae95727f54ca855dce50c — the exact code this score is about.
- Scored under rubric-2026.08.19 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer latest.