-
Notifications
You must be signed in to change notification settings - Fork 38.7k
Description
Sébastien Deleuze opened SPR-16991 and commented
We have began to work with Dave Syer on improving support for running Spring Framework based application as native images via Substrate VM from GraalVM project.
Oracle is currently working on improving support for Spring based on our feedback, so this issue is mainly intended to track those efforts, but also to track fine tuning we could do to improve Spring Framework support for such platform.
Since Spring relies on reflection and proxies, these documents are worth to read:
It has been possible to run a minimal WebFlux.fn + Netty application successfully using functional bean registration, see this Spring Fu issue for more details. Startup time as native image is very fast (30 ms). The self-sufficient executable size is 50 MB and the resident memory is 35 MB.
In parallel to this work, we are also trying to get regular Spring Framework / Boot applications working and to identify how much configuration will be needed (for now we generate it manually). Latest pending issue is being able to run ConversionService
, see graal#507 for more details.
Issue Links:
- RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available [SPR-17007] #21545 RestTemplate (and probably server side as well) should be able to bootstrap itself if com.sun.org.apache.xalan.* is not available ("depends on")
- Support platforms where Class is not Serializable in SerializableTypeWrapper [SPR-16992] #21530 Support platforms where Class is not Serializable in SerializableTypeWrapper ("depends on")
- Perform explicit class checks in ReactiveAdapterRegistry [SPR-17000] #21538 Perform explicit class checks in ReactiveAdapterRegistry ("depends on")
- DefaultParameterNameDiscoverer should automatically adapt to Graal constraints [SPR-17005] #21543 DefaultParameterNameDiscoverer should automatically adapt to Graal constraints ("depends on")
- Detect GraalVM with system property in SerializableTypeWrapper [SPR-17136] #21673 Detect GraalVM with system property in SerializableTypeWrapper ("depends on")
- Be more defensive in UrlResource about cleaning the path [SPR-17198] #21732 Be more defensive in UrlResource about cleaning the path ("depends on")
- Usage of ClassLoader.loadClass() in ConfigurationClassParser [SPR-17253] #21786 Usage of ClassLoader.loadClass() in ConfigurationClassParser ("depends on")
- Make DefaultListableBeanFactory's javax.inject.Provider implementation invisible for nested class introspection [SPR-17014] #21552 Make DefaultListableBeanFactory's javax.inject.Provider implementation invisible for nested class introspection ("depends on")
22 votes, 56 watchers