Brian Clozel
8af1496b37
Expand hints conditions support in RuntimeHints
...
Prior to this commit, the hints conditions were only supported for the
`TypeHint` case. GraalVM generally expanded this concept to all hints
and we should do the same.
Right now, only the `typeReachable` condition is available but we should
design for possible future additions.
This commit introduces a new `ConditionalHint` contract implemented by
all hints compatible with this approach. The condition information is
also used in all configuration writers as a result.
Closes gh-28126
2022-06-02 11:35:03 +02:00
Sam Brannen
bc3b3d01ee
Polishing
2022-06-01 14:57:16 +02:00
Sam Brannen
279f9647ab
Merge branch '5.3.x'
2022-05-31 16:14:16 +02:00
Sam Brannen
aa8802a81d
Avoid new AssertJ deprecations
2022-05-31 16:13:31 +02:00
Sam Brannen
ee209de9cf
Merge branch '5.3.x'
...
# Conflicts:
# spring-beans/src/test/java/org/springframework/beans/factory/support/security/CallbacksSecurityTests.java
# spring-context/src/test/java/org/springframework/ejb/access/LocalSlsbInvokerInterceptorTests.java
# spring-context/src/test/java/org/springframework/ejb/access/SimpleRemoteSlsbInvokerInterceptorTests.java
# spring-web/src/test/java/org/springframework/remoting/jaxws/JaxWsSupportTests.java
# spring-webmvc/src/test/java/org/springframework/web/servlet/config/annotation/ViewResolutionIntegrationTests.java
2022-05-31 14:15:36 +02:00
Sam Brannen
1beb7068f6
Use new AssertJ exception assertions
2022-05-31 14:08:28 +02:00
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