According to the JSF spec section 5.4.1 “JSF Managed Classes and Java EE Annotations”, there are a bunch of JSF artifacts eligible for injection.
On MyFaces, all these objects allow injection when they are registered globally via faces-config.xml. However, injection in ActionListener and PhaseListener don’t work if they are registered per component/view in a facelet using <f:actionListener/> and <f:phaseListener/>.
The following MyFaces JIRA was opened to discuss the issue with the MyFaces community: https://issues.apache.org/jira/browse/MYFACES-4138
On Mojarra, I was not able to get these objects to support injection, I tried registering them globally via faces-config.xml and registering them per component/view in a facelet.
Does injection in ActionListener or PhaseListener need to be supported when they are registered in a facelet using <f:actionListener/> and <f:phaseListener/>?