
November 9th, 2010 by

Lincoln Baxter III
A recent thread came up on the JSF 2 forums: “
Why can’t I use @Inject in a PhaseListener? This CDI stuff is so confusing.”
FIrst, before I start explaining: this
is possible, but there’s a little background you should probably know. The answer to the question “why can’t I use CDI in JSF PhaseListeners?” is: because JSF 2 was completed just a few short months before JSR-299 and the rest of the Java EE 6 platform specifications were finalized. In my opinion – because of the current
state-of-affairs in the JCP – it was just not a safe bet to promise integration with other technologies that might not have been finalized in time. Fortunately, however, JSF goes to extra lengths in providing extension points – solving this with an extension was not too difficult.