-
Notifications
You must be signed in to change notification settings - Fork 38.6k
Closed
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)theme: aotAn issue related to Ahead-of-time processingAn issue related to Ahead-of-time processingtype: enhancementA general enhancementA general enhancement
Milestone
Description
GraalVM native-image
only supports JDK dynamic proxies when configured explicitly on interfaces.
For proxies on classes, typically created at runtime with CGLIB on the JVM, there is a need to create such proxies Ahead-Of-Time. That's what @aclement did in Spring Native:
- Class proxies are configured by users via AotProxyHint (annotation) or NativeProxyEntry (programmatic) or inferred AOT by AotProxyNativeConfigurationProcessor
- ConfigurationContributor#generateBuildTimeClassProxy is generating the configured class proxies using the infrastructure located here.
- A DefaultAopProxyFactory#createAopProxy substitution is using the AOT generated class proxy when needed.
Spring Framework 6 should provide similar support for AOT generated class proxies, potentially by:
- Leveraging ClassProxyHint to configure them
- Deciding how the creation of the proxy should be implemented
- Plug it into the AOT processing
- Implement proper inferring if possible
- Replace the substitution by proper handling in
DefaultAopProxyFactory
and/or other relevant classes
sbrannen
Metadata
Metadata
Assignees
Labels
in: coreIssues in core modules (aop, beans, core, context, expression)Issues in core modules (aop, beans, core, context, expression)theme: aotAn issue related to Ahead-of-time processingAn issue related to Ahead-of-time processingtype: enhancementA general enhancementA general enhancement