Details
-
Feature Request
-
Resolution: Obsolete
-
Minor
-
None
-
1.1.0.Beta1
-
None
-
Documentation (Ref Guide, User Guide, etc.), Compatibility/Configuration
-
Medium
Description
Add support for the injection of EJBs into CDI beans (via the @EJB annotation) in Weld Servlet for use in pre-Java EE 6 environments. This feature would enable more developers to immeidately switch to CDI despite having to use an older platform.
The best strategy to take to implement this feature would be to leverage Weld's EjbServices SPI interface (http://docs.jboss.org/weld/reference/latest/en-US/html/ri-spi.html) on a per container basis (in the same way Weld is integrated into the Java EE 6 containers).
Currently, the Weld Listener doesn't provide any hooks to register services before it starts the container. We could redesign the Listener to support providing the EjbServices implementation (and perhaps other service implementations) in a listener subclass.
It's unlikely we can fully implement EJB integration in pre EE6 environments as (at least in JBoss AS and GlassFish) as some of the hooks (specifically the hooks to remove EJBs on demand) are missing. However, basic injection would cover ~80% of the cases.