Details
-
Task
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
None
-
None
-
None
Description
We need to choose a dependency injection mechanism (CDI). Johann Sorel provided the following analysis:
There is basically two overlapping Java Specification Requests (JSR):
- JSR-299 is the complete CDI version (cdi-api)
- JSR-330 can be seen as a lightweight version of JSR-299. Whether this is an improvement appears questionable.
JSR-330 provides only a limited amount of injection possibilities and does not provide discovery mechanism. Consequently it would not be a replacement for our current usage of META-INF/services entries. Google Guice 3 is a JSR-330 implementation.
JSR-299 is more complete and provides a discovery mechanism. Weld 1 is the reference implementation.
The next CDI version will be JSR-346, available as a draft at the time of writing. Weld 2 is aimed to be the reference implementation.
Recommendation is to wait for JSR-346. The difference with JSR-299 seems small. This new JSR aims to brings "updates and clarifications to CDI 1.0 along much requested features".