Go to file
Sébastien Deleuze 22a750f378 Replace build-time initialization by constant fields
This commit leverages a subset of @philwebb initial experimentation
to compute at build time the value of specific boolean static fields
in native images. This enhancement is implemented for now as a
GraalVM feature.

The goal here is to keep an optimized footprint via build time code
removal without leveraging build-time class initialization which is known
for the blocking compatibility issues it introduces due to its viral nature.

For now, the static fields initialized at build time with native are:
 - NativeDetector#imageCode
 - Fields with a name ending by "Present" in "org.springframework" package
   typically used for classpath check with ClassUtils#isPresent

Closes gh-28624
2022-06-24 13:54:20 +02:00
.github BackportBot ignores pull-requests 2022-06-02 09:21:02 -05:00
buildSrc Configure Spring Milestone repository for apiDiff task 2022-01-13 12:24:39 +01:00
ci Merge branch '5.3.x' 2022-06-09 08:17:47 +02:00
framework-bom Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
gradle Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
integration-tests Merge branch '5.3.x' 2022-05-31 14:15:36 +02:00
spring-aop Harmonize generated class name conventions 2022-06-23 16:05:23 +02:00
spring-aspects Merge branch '5.3.x' 2022-05-31 14:15:36 +02:00
spring-beans Harmonize generated class name conventions 2022-06-23 16:05:23 +02:00
spring-context Harmonize generated class name conventions 2022-06-23 16:05:23 +02:00
spring-context-indexer Use Set.of instead of HashSet with Arrays.asList 2022-05-06 16:19:27 +02:00
spring-context-support Add resource hints for Javamail mime.types 2022-06-23 19:04:10 +02:00
spring-core Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
spring-core-test Add support for annotation processors with TestCompiler 2022-06-07 16:53:28 -07:00
spring-expression Polishing 2022-06-01 14:57:16 +02:00
spring-instrument
spring-jcl Polish contribution 2022-02-19 14:43:26 +01:00
spring-jdbc Merge branch '5.3.x' 2022-06-23 09:04:52 +02:00
spring-jms Merge branch '5.3.x' 2022-06-14 15:14:10 +02:00
spring-messaging Merge branch '5.3.x' 2022-06-01 15:24:05 +02:00
spring-orm Harmonize generated class name conventions 2022-06-23 16:05:23 +02:00
spring-oxm Merge branch '5.3.x' 2022-03-18 16:47:12 +01:00
spring-r2dbc Replace deep exception message nesting with custom inclusion of cause messages 2022-06-14 14:00:28 +02:00
spring-test Merge branch '5.3.x' 2022-06-15 15:12:34 +02:00
spring-tx Merge branch '5.3.x' 2022-05-31 14:15:36 +02:00
spring-web Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
spring-webflux Add static factory methods to WebClientAdapter 2022-06-24 09:55:21 +01:00
spring-webmvc Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
spring-websocket Replace deep exception message nesting with custom inclusion of cause messages 2022-06-14 14:00:28 +02:00
src Add static factory methods to WebClientAdapter 2022-06-24 09:55:21 +01:00
.editorconfig
.gitattributes
.gitignore Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
.mailmap Merge branch '5.3.x' 2022-06-07 14:30:45 +02:00
.sdkmanrc Merge branch '5.3.x' 2022-06-08 12:18:12 +02:00
CODE_OF_CONDUCT.adoc
CONTRIBUTING.md Polishinig 2021-10-08 14:00:23 +02:00
LICENSE.txt
README.md
SECURITY.md Update "Reporting a Vulnerability" link 2021-10-20 14:48:51 +02:00
build.gradle Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00
gradle.properties Next development version (v5.3.22-SNAPSHOT) 2022-06-15 08:17:52 +00:00
gradlew
gradlew.bat
import-into-eclipse.md Remove Groovy from "Eclipse/STS Project Import Guide" 2022-01-21 11:27:09 +01:00
import-into-idea.md
settings.gradle Replace build-time initialization by constant fields 2022-06-24 13:54:20 +02:00

README.md

Spring Framework Build Status Revved up by Gradle Enterprise

This is the home of the Spring Framework: the foundation for all Spring projects. Collectively the Spring Framework and the family of Spring projects are often referred to simply as "Spring".

Spring provides everything required beyond the Java programming language for creating enterprise applications for a wide range of scenarios and architectures. Please read the Overview section as reference for a more complete introduction.

Code of Conduct

This project is governed by the Spring Code of Conduct. By participating, you are expected to uphold this code of conduct. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.

Access to Binaries

For access to artifacts or a distribution zip, see the Spring Framework Artifacts wiki page.

Documentation

The Spring Framework maintains reference documentation (published and source), Github wiki pages, and an API reference. There are also guides and tutorials across Spring projects.

Micro-Benchmarks

See the Micro-Benchmarks Wiki page.

Build from Source

See the Build from Source Wiki page and the CONTRIBUTING.md file.

Continuous Integration Builds

Information regarding CI builds can be found in the Spring Framework Concourse pipeline documentation.

Stay in Touch

Follow @SpringCentral, @SpringFramework, and its team members on Twitter. In-depth articles can be found at The Spring Blog, and releases are announced via our news feed.

License

The Spring Framework is released under version 2.0 of the Apache License.