Go to file
Sam Brannen 332b25b680 Support searches for non-public repeatable annotations
Prior to this commit, searches for non-public repeatable annotations
failed with error messages similar to the following, since the
repeatable annotation's container's `value()` method could not be
invoked via reflection.

JDK 8:

java.lang.IllegalAccessError: tried to access class
org.springframework.core.annotation.NestedRepeatableAnnotationsTests$A
from class com.sun.proxy.$Proxy12

JDK 17:

java.lang.IllegalAccessError: failed to access class
org.springframework.core.annotation.NestedRepeatableAnnotationsTests$A
from class jdk.proxy2.$Proxy12
(org.springframework.core.annotation.NestedRepeatableAnnotationsTests$A
is in unnamed module of loader 'app'; jdk.proxy2.$Proxy12 is in module
jdk.proxy2 of loader 'app')

This commit makes it possible to search for non-public repeatable
annotations by first attempting to invoke the repeatable annotation's
container's `value()` method via the container's InvocationHandler (if
the container is a JDK dynamic proxy) and then falling back to
reflection for the method invocation if an error occurs (such as a
SecurityException).

Closes gh-29301
2022-10-11 19:27:40 +02:00
.github Use actions/checkout@v3 for Gradle Wrapper Validation Action 2022-09-26 08:52:21 +02:00
buildSrc Upgrade to JApicmp Gradle Plugin 0.3.0 2021-09-15 14:40:42 +02:00
ci Limit exclude to core Spring Framework committers 2022-09-15 17:15:50 +02:00
framework-bom Remove BOM workaround 2020-04-28 15:14:02 +02:00
gradle Upgrade to Gradle 7.5.1 2022-09-30 14:35:31 +02:00
integration-tests Use new AssertJ exception assertions 2022-05-31 14:08:28 +02:00
spring-aop Fix typos in Javadoc, reference docs, and code 2022-09-14 16:45:34 +02:00
spring-aspects Fix typos in Javadoc, reference docs, and code 2022-09-14 16:45:34 +02:00
spring-beans Apply consistent ordering in hierarchical contexts 2022-09-13 07:23:22 +02:00
spring-context Fix links in Javadoc and reference docs 2022-09-14 17:00:11 +02:00
spring-context-indexer Fix typos in Javadoc, reference docs, and code 2022-09-14 16:45:34 +02:00
spring-context-support Fix links in Javadoc and reference docs 2022-09-14 17:00:11 +02:00
spring-core Support searches for non-public repeatable annotations 2022-10-11 19:27:40 +02:00
spring-expression Fix links in Javadoc and reference docs 2022-09-14 17:00:11 +02:00
spring-instrument Delete obsolete log4j config 2020-03-18 17:01:01 +01:00
spring-jcl Polishing 2021-09-28 18:15:56 +02:00
spring-jdbc Use AssertJ static imports consistently in 5.3.x 2022-10-08 13:57:21 +02:00
spring-jms Fix typos in Javadoc, reference docs, and code 2022-09-14 16:45:34 +02:00
spring-messaging Use AssertJ static imports consistently in 5.3.x 2022-10-08 13:57:21 +02:00
spring-orm Fix typos in Javadoc, reference docs, and code 2022-09-14 16:45:34 +02:00
spring-oxm Fix typos in test code 2022-07-13 16:24:11 +02:00
spring-r2dbc Fix typos in test code 2022-07-13 16:24:11 +02:00
spring-test Document how to switch to the default set of TestExecutionListeners 2022-10-08 16:20:55 +02:00
spring-tx Use AssertJ static imports consistently in 5.3.x 2022-10-08 13:57:21 +02:00
spring-web Use AssertJ static imports consistently in 5.3.x 2022-10-08 13:57:21 +02:00
spring-webflux RenderingResponse must set status code on RedirectView 2022-08-30 15:14:03 +02:00
spring-webmvc Fix links in Javadoc and reference docs 2022-09-14 17:00:11 +02:00
spring-websocket Polishing contribution 2022-09-12 10:52:53 +01:00
src Document how to switch to the default set of TestExecutionListeners 2022-10-07 17:58:22 +02: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 Ignore /spring-core/graalvm/build artifacts from the main branch 2022-06-27 14:43:06 +02:00
.mailmap Add entries for "Sam Brannen" to .mailmap 2022-06-07 14:27:42 +02:00
.sdkmanrc Upgrade Java 8 version in CI image and .sdkmanrc 2022-08-11 13:31:36 +02:00
CODE_OF_CONDUCT.adoc URL Cleanup 2019-03-21 15:08:55 -05:00
CONTRIBUTING.md Avoid creating unnessary wrapper for empty map 2021-06-11 16:36:04 +01:00
LICENSE.txt Add LICENSE.txt file 2019-08-20 22:01:12 +02:00
README.md Fix minor typos in project README 2022-07-13 15:12:21 +02:00
SECURITY.md Update "Reporting a Vulnerability" link 2021-10-20 14:48:51 +02:00
build.gradle Configure more memory for checkstyleNohttp 2022-10-04 13:08:08 +02:00
gradle.properties Next development version (v5.3.24-SNAPSHOT) 2022-09-15 07:59:36 +00:00
gradlew Upgrade to Gradle 7.2 2021-09-13 09:37:35 +02:00
gradlew.bat Upgrade to Gradle 6.6 2020-08-11 12:10:35 +02:00
import-into-eclipse.md About notes about AJDT and Kotlin not supported in Eclipse 4.21 2021-09-21 14:23:02 +02:00
import-into-idea.md Fix links in Javadoc and reference docs 2022-09-14 17:00:11 +02:00
settings.gradle Upgrade to Gradle Enterprise Conventions Plugin 0.0.11 2022-09-18 14:50:03 +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.