←Older revision | Revision as of 02:47, 5 April 2022 | ||
Line 1: | Line 1: | ||
[[CDI]] stands for Contexts and [[Dependency Injection]]. Referenced implementation is provided by [[Weld]]. Used by [[Helidon]] - even in [[NativeImage]] mode. | [[CDI]] stands for Contexts and [[Dependency Injection]]. Referenced implementation is provided by [[Weld]]. Used by [[Helidon]] - even in [[NativeImage]] mode. | ||
+ | |||
+ | [[Helidon]] MP implements the [[MicroProfile]] specification based on various other standard [[JavaEE]] subspecifications including [[CDI]]. Getting [[Weld]] (the reference [[CDI]] specification) running on top of [[NativeImage]] is particularly tricky. Not only [[Weld]] dynamically scans for various annotations, but it also dynamically emits [[bytecode]] for its helper classes during runtime. Solving this required more insight into [[JavaEE]] than available among compiler engineers - not that [[I]] had it initially, but the close co-operation with Tomáš Langer (the [[Helidon]] lead engineer) helped us move forward. Tomáš prepared various trivial [[CDI]] sample projects and [[I]] was then able to get them running on [[NativeImage]] by writing a dedicated '''WeldFeature'''. Once the initial road block was gone the [[Helidon]] team was able to move forward on their own and get their enhanced [[Weld]] running on top of [[NativeImage]]. | ||
+ | |||
+ | [[Helidon]] 2.0 [https://medium.com/helidon/announcing-helidon-2-0-19c245f5488a was released] on June 24, 2020. It's [[MicroProfile]] edition (including compatible [[CDI]] implementation) works with [[NativeImage]]. |