Go to file
Simon Baslé b39e93d0d1 Add test support to record async events, with Junit5 caveat
This commit modifies the way the `@RecordApplicationEvents` annotation
works in tests, allowing for capture of events from threads other than
the main test thread (async events) and for the assertion of captured
event from a separate thread (e.g. when using `Awaitility`).

This is done by switching the `ApplicationEventsHolder` to use an
`InheritedThreadLocal`.

There is a mutual exclusion between support of asynchronous events vs
support of JUnit5 parallel tests with the `@TestInstance(PER_CLASS)`
mode. As a result, we favor the former and now `SpringExtension` will
invalidate a test class that is annotated (or meta-annotated, or
enclosed-annotated) with `@RecordApplicationEvents` AND
`@TestInstance(PER_CLASS)` AND `@Execution(CONCURRENT)`.

See gh-29827
Closes gh-30020
2023-05-05 17:10:41 +02:00
.github Use the shared antora playbook 2023-05-04 15:35:05 +01:00
buildSrc nohttp exclude **/.gradle/** 2023-05-04 17:47:37 +01:00
ci Merge branch '6.0.x' 2023-04-24 12:56:37 +02:00
framework-bom Guard against new Spring modules in ApiDiff task 2022-07-28 10:51:53 +02:00
framework-docs Add SpEL support for registered MethodHandles 2023-05-05 16:18:25 +02:00
framework-platform Support for Project CRaC in DefaultLifecycleProcessor 2023-05-03 16:01:41 +02:00
gradle Merge branch '6.0.x' 2023-04-25 19:52:06 +02:00
integration-tests Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-aop Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-aspects Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-beans Merge branch '6.0.x' 2023-05-04 12:23:46 +02:00
spring-context Skip CRaC support with native images 2023-05-04 15:36:29 +02:00
spring-context-indexer Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-context-support Deprecate AutowireCapableBeanFactory.createBean(Class, int, boolean) 2023-04-30 23:07:29 +02:00
spring-core Merge branch '6.0.x' 2023-05-05 15:04:15 +02:00
spring-core-test Suppress deprecations for compiling on JDK 19/20 2023-05-03 10:17:12 +02:00
spring-expression Add SpEL support for registered MethodHandles 2023-05-05 16:18:25 +02:00
spring-instrument Ensure all packages declare package-info.java with null-safety annotations 2023-03-10 17:33:52 +01:00
spring-jcl Apply "instanceof pattern matching" in spring-jcl module 2023-03-06 14:56:53 +01:00
spring-jdbc Remove APIs deprecated for removal in 6.1 2023-04-19 17:23:49 +02:00
spring-jms Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-messaging Disable flaky ReactorNetty2StompBrokerRelayIntegrationTests 2023-05-04 16:37:17 +02:00
spring-orm Deprecate AutowireCapableBeanFactory.createBean(Class, int, boolean) 2023-04-30 23:07:29 +02:00
spring-oxm Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-r2dbc Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-test Add test support to record async events, with Junit5 caveat 2023-05-05 17:10:41 +02:00
spring-tx Trigger rollback for (Completable)Future exception on method return 2023-05-03 10:03:31 +02:00
spring-web Merge branch '6.0.x' 2023-04-28 16:09:15 +02:00
spring-webflux Relax relative path existence assertion for parsed URIs 2023-05-01 00:01:49 +02:00
spring-webmvc Relax relative path existence assertion for parsed URIs 2023-05-01 00:01:49 +02:00
spring-websocket Optimize MultiValueMap iteration operations 2023-04-25 09:57:26 +02:00
src Polishing 2023-03-12 18:38:50 +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 Use the shared antora playbook 2023-05-04 15:35:05 +01:00
.mailmap Add Simon to mailmap 2023-01-11 15:26:31 +01:00
.sdkmanrc Updated sdkmanrc 2023-04-24 12:30:02 +02:00
CODE_OF_CONDUCT.adoc URL Cleanup 2019-03-21 15:08:55 -05:00
CONTRIBUTING.md Create framework-docs module 2022-11-02 10:59:12 +01:00
LICENSE.txt Add LICENSE.txt file 2019-08-20 22:01:12 +02:00
README.md Fix link to releases feed 2023-04-17 18:02:01 +02:00
SECURITY.md Mention JAR signing key in SECURITY.md 2023-03-17 22:32:33 +01:00
build.gradle fix framework-docs.gradle 2023-05-04 15:35:05 +01:00
gradle.properties Set current version to 6.0.9-SNAPSHOT 2023-04-14 12:35:24 +02:00
gradlew Upgrade to Gradle 8.1.1 2023-04-25 19:51:54 +02:00
gradlew.bat Upgrade Gradle wrapper 2022-11-25 23:12:08 +01: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 Upgrade dependencies 2023-04-02 19:20:49 +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 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 releases feed.

License

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