Go to file
Sam Brannen aa2028127f Overhaul TestExecutionListener for Micrometer ObservationRegistry
This commit overhauls the TestExecutionListener for Micrometer's
ObservationRegistry that was introduced in the previous commit.

Specifically, this commit:

- Renames the listener to MicrometerObservationRegistryTestExecutionListener
  since the use of a ThreadLocal is an implementation detail that may
  change over time.

- Makes the listener package-private instead of public in order to
  allow the team greater flexibility in evolving this feature.

- Eagerly loads the ObservationThreadLocalAccessor class and verifies
  that it has a getObservationRegistry() method to ensure that the
  listener is properly skipped when SpringFactoriesLoader attempts to
  load it, if Micrometer 1.10.8+ is not on the classpath.

- Switches the listener's automatic registration order to 2500 in order
  to register it after the DependencyInjectionTestExecutionListener.

- Only tracks the previous ObservationRegistry in beforeTestMethod() if
  the test's ApplicationContext contains an ObservationRegistry bean.

- Properly removes the TestContext attribute for the previous
  ObservationRegistry in afterTestMethod().

- Introduces DEBUG logging for diagnostics.

- Adds an entry in the Javadoc for TestExecutionListener as well as in
  the Testing chapter in the reference manual.

Closes gh-30658
2023-06-14 14:36:05 +02:00
.github Use the shared antora playbook 2023-05-04 15:35:05 +01:00
buildSrc Polishing 2023-03-24 16:05:40 +01:00
ci Build Antora docs as part of CI check job 2023-05-25 20:12:04 +02:00
framework-bom Guard against new Spring modules in ApiDiff task 2022-07-28 10:51:53 +02:00
framework-docs Overhaul TestExecutionListener for Micrometer ObservationRegistry 2023-06-14 14:36:05 +02:00
framework-platform Upgrade to Undertow 2.3.7 and JRuby 9.4.3 2023-06-14 11:18:37 +02:00
gradle Improve how the build deals with javadoc invalid references 2023-05-16 15:04:10 +02:00
integration-tests Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-aop Specific check for parent of spring-aop ClassLoader 2023-06-12 10:48:57 +02:00
spring-aspects Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-beans Move web-related test for BeanUtilsRuntimeHints to spring-web 2023-06-13 17:12:38 +02:00
spring-context Use nanosecond precision for scheduling (aligned with calculations) 2023-06-14 12:57:17 +02:00
spring-context-indexer Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-context-support Redesign inner Pointcut implementations as standalone classes 2023-06-08 17:42:49 +02:00
spring-core Align with 5.3.28 javadoc for isSimpleValueType 2023-06-14 11:18:18 +02:00
spring-core-test Update copyright headers 2023-03-13 21:53:40 +01:00
spring-expression Do not precede indexed access with a dot in SpEL AST representation 2023-06-07 14:45:52 +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 Log warning in case of standard Commons Logging discovery 2023-06-02 23:25:08 +02:00
spring-jdbc Consistent javadoc references to JdbcTransactionManager 2023-06-05 10:52:33 +02:00
spring-jms Handle custom JMS acknowledgment modes as client acknowledge (#30619) 2023-06-12 10:46:22 +02:00
spring-messaging Revert "Temporarily re-enable ReactorNetty2StompBrokerRelayIntegrationTests" 2023-06-12 16:11:42 +01:00
spring-orm Synchronize transaction begin for non-lazy default transactions as well 2023-06-13 12:40:57 +02:00
spring-oxm Refactor AssertJ assertions into more idiomatic ones 2023-04-04 17:34:07 +02:00
spring-r2dbc Add nested propagation support to R2dbcTransactionManager 2023-06-05 10:45:47 +02:00
spring-test Overhaul TestExecutionListener for Micrometer ObservationRegistry 2023-06-14 14:36:05 +02:00
spring-tx Consistent equals implementations in AOP support classes 2023-06-08 17:42:49 +02:00
spring-web Clarify removal of ResponseEntity::getStatusCodeValue 2023-06-14 11:29:21 +02:00
spring-webflux Method level only, empty RequestMapping matches "" and "/" 2023-06-12 16:11:42 +01:00
spring-webmvc Upgrade to Micrometer BOM 1.10.8 and context-propagation 1.0.3 2023-06-13 16:21:26 +02:00
spring-websocket Integration test status quo for SpEL 'selector' support in messaging 2023-06-04 16:25:21 +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 Add cached-antora-playbook.yml back to .gitignore 2023-05-23 15:12:35 +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 Update build badge and link 2023-03-01 15:51:07 +01:00
SECURITY.md Mention JAR signing key in SECURITY.md 2023-03-17 22:32:33 +01:00
build.gradle Upgrade to Groovy 4.0.12, Tomcat 10.1.9, Netty 4.1.93, Undertow 2.3.6, Protobuf 3.23.2, Picocli 4.7.4, Checkstyle 10.12 2023-06-04 18:42:21 +02:00
gradle.properties Next development version (v6.0.10-SNAPSHOT) 2023-05-11 12:47:00 +00: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 news feed.

License

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