Go to file
Sam Brannen fcc99a67b6 Support lists for varargs invocations in SpEL
The changes made in conjunction with gh-33013 resulted in a regression
for varargs support in SpEL expressions. Specifically, before gh-33013
one could supply a list -- for example, an "inline list" -- as the
varargs array when invoking a varargs constructor, method, or function
within a SpEL expression. However, after gh-33013 an inline list (or
collection in general) is no longer converted to an array for varargs
invocations. Instead, the list is supplied as a single argument of the
resulting varargs array which breaks applications that depend on the
previous behavior.

Although it was never intended that one could supply a collection as
the set of varargs, we concede that this is a regression in existing
behavior, and this commit therefore restores support for supplying a
java.util.List as the varargs "array".

In addition, this commit introduces the same "list to array" conversion
support for MethodHandle-based functions that accept varargs.

Note, however, that this commit does not restore support for converting
arbitrary single objects to an array for varargs invocations if the
single object is already an instance of the varargs array's component
type.

See gh-33013
Closes gh-33315
2024-08-05 16:28:11 +03:00
.github Shorten CI and deploy snapshot jobs to 60 minutes 2024-08-02 10:56:25 +02:00
buildSrc Fix Gradle warning in RuntimeHintsAgentPlugin 2024-07-23 17:09:13 +02:00
framework-api Fix warning in doc generation 2024-07-23 15:06:59 +02:00
framework-bom Guard against new Spring modules in ApiDiff task 2022-07-28 10:51:53 +02:00
framework-docs Review Caching infrastructure documentation 2024-07-29 11:29:35 +02:00
framework-platform Polish "Stop referring to STRUCT and ARRAY as they are deprecated" 2024-07-21 11:39:16 +02:00
gradle Fix XJC configuration to re-enable Eclipse IDE support 2024-07-26 16:39:40 +03:00
integration-tests Fix AOP for Kotlin suspending function with aspect + `@Cacheable` 2024-07-15 11:47:12 +02:00
spring-aop Polishing 2024-07-10 15:56:56 +02:00
spring-aspects Skip ajc-compiled aspects for ajc-compiled target classes 2024-06-06 20:42:07 +02:00
spring-beans Suppress deprecated warnings for autowiring 2024-07-31 16:51:06 +02:00
spring-context Review Caching infrastructure documentation 2024-07-29 11:29:35 +02:00
spring-context-indexer Polish 2024-01-17 18:41:15 +01:00
spring-context-support Improve documentation regarding encoding in FreeMarker support 2024-06-25 16:56:48 +02:00
spring-core Support conversion from primitive array to Object[] in ConversionService 2024-08-04 17:13:56 +03:00
spring-core-test Update copyright year of changed files 2024-04-23 15:32:59 +02:00
spring-expression Support lists for varargs invocations in SpEL 2024-08-05 16:28:11 +03:00
spring-instrument Ensure all packages declare package-info.java with null-safety annotations 2023-03-10 17:33:52 +01:00
spring-jcl Log4jLog re-resolves ExtendedLogger on deserialization 2023-11-09 11:46:22 +01:00
spring-jdbc Polish 2024-05-23 08:12:30 +02:00
spring-jms Instrument @JmsListener session for response messages 2024-07-19 17:17:18 +02:00
spring-messaging Polish contribution 2024-07-08 16:51:23 +02:00
spring-orm Add missing hints for Hibernate `@TenantId` 2024-06-06 10:04:35 +02:00
spring-oxm Fix XJC configuration to re-enable Eclipse IDE support 2024-07-26 16:39:40 +03:00
spring-r2dbc Refine null-safety in more modules 2024-03-26 09:46:34 +01:00
spring-test Avoid reader on empty content to be shared by multiple requests 2024-05-20 13:58:36 +02:00
spring-tx Make coroutines with custom AOP aspects work with `@Transactional` 2024-07-10 15:35:43 +02:00
spring-web Fix buffer leak in MultipartParser 2024-08-01 16:28:50 +02:00
spring-webflux Allow tests to pass on Windows JVM (non-UTF-8 default encoding) 2024-07-08 19:42:28 +02:00
spring-webmvc Fix multipart async servlet request temporary files deletion 2024-07-12 12:50:59 +02:00
spring-websocket Polishing 2024-05-07 15:52:13 +02:00
src Apply UnnecessarySemicolonInEnumeration Checkstyle module 2024-03-22 16:30:06 +01:00
.editorconfig Add EditorConfig 2017-06-12 08:07:54 +02:00
.gitattributes Ensure line endings for binary files are not modified in Git 2019-10-18 11:56:18 +02:00
.gitignore Modernize Antora Build 2024-05-22 10:20:20 +02:00
.sdkmanrc Upgrade to Java 17.0.12 2024-08-04 09:34:13 +02:00
CONTRIBUTING.md Update code-of-conduct email 2024-06-10 10:48:06 +01:00
LICENSE.txt Add LICENSE.txt file 2019-08-20 22:01:12 +02:00
README.md Update code-of-conduct email 2024-06-10 10:48:06 +01:00
SECURITY.md Mention JAR signing key in SECURITY.md 2023-03-17 22:32:33 +01:00
build.gradle Switch to Shadow plugin fork 2024-07-24 11:42:54 +02:00
gradle.properties Next development version (v6.1.12-SNAPSHOT) 2024-07-11 10:14:04 +02:00
gradlew Upgrade to Gradle 8.9 2024-07-14 11:21:52 +02:00
gradlew.bat Upgrade to Gradle 8.9 2024-07-14 11:21:52 +02:00
import-into-eclipse.md Remove Groovy from "Eclipse/STS Project Import Guide" 2022-01-21 11:27:09 +01:00
import-into-idea.md Fix links in Javadoc and reference docs 2022-09-14 17:00:11 +02:00
settings.gradle Fix build warnings 2024-04-30 19:10:31 +02:00
update_copyright_headers.sh Use correct Kotlin file extension in update_copyright_headers.sh 2023-02-19 13:41:36 +01:00

README.md

Spring Framework Build Status Revved up by Develocity

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 of the reference documentation 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@spring.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 𝕏. In-depth articles can be found at The Spring Blog, and releases are announced via our releases feed.

License

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