Sam Brannen
720261db26
Use List.of() and Set.of() where feasible
2022-05-30 18:42:48 +02:00
Phillip Webb
efa8ffb728
Polish
2022-05-26 20:56:06 -07:00
Stephane Nicoll
059b66bf26
Register annotation based on its type
...
This commit improves registerAnnotation to use the annotation type
rather than a `MergedAnnotation` attribute.
See gh-28497
2022-05-25 10:30:43 +02:00
Stephane Nicoll
d0afbe40e6
Tag EventListener as a reflective operation
...
This commit adds compatibility of declarative event listeners in a
native image.
See gh-28475
2022-05-20 15:14:59 +02:00
Stephane Nicoll
4cca190aad
Add support of declarative use of reflection
...
This commit adds a `@Reflective` annotation that can be used to declare
that the annotated element requires reflection at runtime. By default,
the annotated element is exposed but this can be customized by
specifying a dedicated `ReflectiveProcessor`.
Closes gh-28469
2022-05-20 15:02:46 +02:00
Stephane Nicoll
9487e8ce1e
Polish
2022-05-18 13:57:48 +02:00
Sam Brannen
70415b1781
Merge branch '5.3.x'
2022-05-17 15:41:08 +02:00
Sam Brannen
59c7bb1f86
Use Arrays.toString instead of Arrays.asList when generating Strings
2022-05-17 15:36:31 +02:00
Sam Brannen
874077d16e
Apply "advanced" instanceof pattern matching
2022-05-17 11:24:32 +02:00
Sam Brannen
bf8a54decf
Switch focus to JUnit Jupiter in testing examples
2022-05-16 10:05:37 +02:00
Sam Brannen
3d39dfc4ce
Polishing
2022-05-14 18:35:58 +02:00
Sam Brannen
754636ee56
Merge branch '5.3.x'
2022-05-14 18:32:14 +02:00
Sam Brannen
f2fe7f335c
Improve nullReturningBeanPostProcessor() test
...
See gh-28459
2022-05-14 18:30:39 +02:00
evgeny.bovykin
7cb6ac0a02
Make inner classes static when feasible (on main)
...
A static nested class does not keep an implicit reference to its
enclosing instance.
This prevents a common cause of memory leaks and uses less memory per
instance of the class.
Closes gh-28433
2022-05-10 11:45:18 +02:00
Sam Brannen
5f8a4bcdc5
Merge branch '5.3.x'
...
# Conflicts:
# spring-context/src/main/java/org/springframework/jmx/export/MBeanExporter.java
# spring-context/src/main/java/org/springframework/scripting/support/StandardScriptFactory.java
2022-05-09 20:08:37 +02:00
Sam Brannen
e26d8839b3
Stop referring to features as Java 6/7 features where unnecessary
2022-05-09 19:09:06 +02:00
Juergen Hoeller
2b65f274dc
Use Set.of instead of HashSet with Arrays.asList
2022-05-06 16:19:27 +02:00
Juergen Hoeller
f8c4071f73
Introduce removeApplicationListener method at ApplicationContext level
...
Closes gh-14023
2022-05-06 16:14:04 +02:00
Phillip Webb
16e7f1f212
Complete refactor of AOT concepts
...
Remove the AOT code that now has an alternative API.
Closes gh-28414
2022-05-05 13:34:52 -07:00
Phillip Webb
702207d9ee
Add updated ApplicationContextAotGenerator
...
Add `ApplicationContextAotGenerator` implementation that makes
use of the new AOT generation APIs.
See gh-28414
2022-05-05 13:25:37 -07:00
Phillip Webb
e4a8258fb2
Update ConfigurationClassPostProcessor AOT support
...
Update `ConfigurationClassPostProcessor` so that it provides AOT
contributions via the `BeanFactoryInitializationAotProcessor`
interface.
See gh-28414
2022-05-05 13:25:36 -07:00
Phillip Webb
ddba45d01d
Polish formatting
2022-05-05 12:35:21 -07:00
Juergen Hoeller
0f6d459de7
Support for jakarta.enterprise.concurrent.Asynchronous annotation
...
Closes gh-28400
2022-05-05 17:25:39 +02:00
Stephane Nicoll
7820804bf6
Allow registration of bean factory contributors via spring.factories
...
Closes gh-28342
2022-04-14 15:11:48 +02:00
Stephane Nicoll
8b97c2dc9d
Polish
2022-04-14 14:56:08 +02:00
Brian Clozel
38019d2249
Allow static registration of RuntimeHints
...
Prior to this commit, we could only contribute `RuntimeHints` through
two mechanisms:
* `AotContributingBeanFactoryPostProcessor`, consdering the entire
`BeanFactory` and designed for contributing both code and hints.
* `AotContributingBeanPostProcessor`, consdering beans one by one, but
also designed for contributing both code and hints.
There are cases where libraries and applications want to contribute
`RuntimeHints` only, in a more static fashion: a dependency being
present, or a piece of infrastructure being considered by the
application context are good enough signals to contribute hints about
resources or reflection.
This commit adds the `RuntimeHintsRegistrar` contract for these cases.
Implementations can be declared as `spring.factories` and they will be
processed as soon as they're detected on the classpath. They can also be
declared with `@ImportRuntimeHints` and they will be processed if the
annotated bean definition is considered in the application context.
This annotation should be mainly used on configuration classes and on
bean methods.
```
@Configuration
@ImportRuntimeHints(CustomRuntimeHintsRegistrar.class)
public class MyConfiguration {
@Bean
@ImportRuntimeHints(OtherRuntimeHintsRegistrar.class)
public MyBean myBean() {
//...
}
}
```
Closes gh-28160
2022-04-14 13:06:43 +02:00
Sam Brannen
1574fed90b
Merge branch '5.3.x'
2022-04-13 10:08:31 +02:00
Sam Brannen
a7cf19cec5
Improve documentation and matching algorithm in data binders
2022-04-13 09:55:40 +02:00
Sam Brannen
c9e7816762
Merge branch '5.3.x'
2022-04-09 10:43:02 +02:00
Sam Brannen
6fad00ed22
Ensure dynamic proxy with AOP introduction includes lambda interfaces
...
Closes gh-28209
2022-04-09 09:57:43 +02:00
Juergen Hoeller
9ae35e78b1
Merge branch '5.3.x'
...
# Conflicts:
# spring-context-support/src/test/java/org/springframework/validation/beanvalidation2/ValidatorFactoryTests.java
# spring-context/src/test/java/org/springframework/validation/beanvalidation/ValidatorFactoryTests.java
# spring-web/src/main/java/org/springframework/http/server/reactive/ServletServerHttpRequest.java
2022-04-08 14:42:12 +02:00
Juergen Hoeller
35de7e19ee
Introduce initializer callback for Bean Validation Configuration
...
Closes gh-27956
2022-04-08 14:39:36 +02:00
Juergen Hoeller
10e979e58b
Polishing
2022-04-08 14:37:41 +02:00
Juergen Hoeller
7e1782ea22
Merge branch '5.3.x'
...
# Conflicts:
# build.gradle
# spring-core/src/main/java/org/springframework/core/convert/Property.java
2022-04-08 13:10:34 +02:00
Juergen Hoeller
4143b445d6
Polishing
2022-04-08 13:04:14 +02:00
Juergen Hoeller
12d8010395
Merge branch '5.3.x'
2022-03-25 18:08:55 +01:00
Juergen Hoeller
35610a535d
Expose cancel(mayInterruptIfRunning) variant in ScheduledTask
...
Closes gh-28233
2022-03-25 18:06:31 +01:00
Sam Brannen
d11389e783
Merge branch '5.3.x'
2022-03-21 17:13:30 +01:00
Sam Brannen
8fc744f4f4
Improve Javadoc for BeanExpressionResolver
2022-03-21 16:57:27 +01:00
Sam Brannen
3da7a48a17
Explicitly close ApplicationContexts and clean up warnings in tests
2022-03-20 13:19:25 +01:00
Sam Brannen
7f4e09e994
Merge branch '5.3.x'
...
# Conflicts:
# spring-context/src/test/java/org/springframework/context/event/PayloadApplicationEventTests.java
# spring-context/src/test/java/org/springframework/context/groovy/GroovyApplicationContextTests.java
# spring-context/src/test/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryBeanTests.java
# spring-context/src/test/java/org/springframework/format/datetime/joda/DateTimeFormatterFactoryTests.java
# spring-context/src/test/java/org/springframework/format/datetime/joda/JodaTimeFormattingTests.java
# spring-context/src/test/java/org/springframework/format/support/FormattingConversionServiceTests.java
# spring-context/src/test/java/org/springframework/remoting/rmi/RmiSupportTests.java
# spring-context/src/test/java/org/springframework/scripting/support/StandardScriptFactoryTests.java
# spring-web/src/test/java/org/springframework/remoting/caucho/CauchoRemotingTests.java
# spring-web/src/test/java/org/springframework/remoting/httpinvoker/HttpComponentsHttpInvokerRequestExecutorTests.java
2022-03-20 12:55:39 +01:00
Sam Brannen
9a5891e6e6
Explicitly close ApplicationContexts and clean up warnings in tests
...
This commit also ensures that various test methods actually test
something now.
2022-03-20 12:34:56 +01:00
Stephane Nicoll
0cbea29517
Polish
2022-03-18 18:25:30 +01:00
Sam Brannen
2fb1dd177b
Remove obsolete org.springframework.core.NestedIOException
...
This commit removes Spring's custom NestedIOException and replaces its
usage with the standard IOException which has supported a root cause
since Java 6.
Closes gh-28198
2022-03-18 16:56:56 +01:00
Sam Brannen
b570f60560
Merge branch '5.3.x'
...
# Conflicts:
# spring-aop/src/main/java/org/springframework/aop/support/AopUtils.java
# spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationClassFilter.java
# spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMatchingPointcut.java
# spring-aop/src/main/java/org/springframework/aop/support/annotation/AnnotationMethodMatcher.java
# spring-beans/src/main/java/org/springframework/beans/factory/annotation/RequiredAnnotationBeanPostProcessor.java
# spring-context/src/main/java/org/springframework/context/annotation/CommonAnnotationBeanPostProcessor.java
# spring-context/src/main/java/org/springframework/jmx/export/annotation/ManagedNotification.java
# spring-context/src/main/java/org/springframework/jmx/export/annotation/ManagedOperationParameter.java
# spring-core/src/main/java/org/springframework/javapoet/support/package-info.java
# spring-core/src/main/java/org/springframework/util/TypeUtils.java
# spring-web/src/main/java/org/springframework/http/HttpMethod.java
2022-03-18 16:47:12 +01:00
Sam Brannen
64b64d9ba0
Stop referring to features as "Java 5" features
...
With a Java 8 baseline in place for quite some time now, it no longer
makes sense to refer to features such as annotations as "Java 5
annotations".
This commit also removes old `Tiger*Tests` classes, thereby avoiding
duplicate execution of various tests.
2022-03-18 16:32:30 +01:00
Sam Brannen
1419172fbd
Polish Javadoc for JMX support
2022-03-18 15:25:35 +01:00
Sam Brannen
4db2f8ea1b
Remove obsolete Nashorn-based scripting tests
...
Since the Nashorn JavaScript engine was removed in Java 15, these tests
will never be run on a Java 17+ JDK which is required as of Spring
Framework 6.0.
See gh-27919
2022-03-15 16:33:52 +01:00
Stephane Nicoll
672555a568
Add support of init and destroy methods
...
This commit updates InitDestroyBeanPostProcessor so that it contributes
init or destroy method names to the `RootBeanDefinition`. This is then
used by the generator to provide these methods to the optimized AOT
context.
Invocation of those init methods still happen using reflection so
dedicated hints are contributed for them.
Closes gh-28151
2022-03-12 13:35:56 +01:00
izeye
2a9a1f1c3a
Add Javadoc since for GenericApplicationContext.refreshForAotProcessing()
...
See gh-28171
2022-03-12 11:42:36 +01:00