[
https://issues.jboss.org/browse/WFLY-2611?page=com.atlassian.jira.plugin....
]
Tomas Remes updated WFLY-2611:
------------------------------
Summary: Unify JSF action listener and CDI integration (was: Support CDI
injection in various JSF artifacts)
Assignee: Farah Juma (was: Stuart Douglas)
Affects Version/s: 8.0.0.CR1
Description:
There are three ways, how can user specify custom JSF action listener:
1. Method binding - with actionListener param. This case is ok, meaning CDI injection and
interceptor works for given method/bean.
2. Providing custom implementation - <f:actionListener
type="org.jboss.jsf.listeners.MyActionListener"/>. In this case CDI
doesn't work at all for processAction method of given class.
3. Defining in faces-config - in this case CDI injection works, but interceptor is not
executed.
Producer available at
https://github.com/tremes/javaee7-samples/tree/cdi-testing/jsf/jsf-listen....
Test can be executed with "mvn clean test -Pwildfly-managed-arquillian" or
"mvn clean test -Pwildfly-remote-arquillian" and IMHO all should pass.
was:
If I understand correctly to the subchapter "5.4.1
JSF Managed Classes and Java EE Annotations" of JSF 2.2 specification, there should
be opportunity to use a lot of (and not only) CDI annotations in various JSF artifacts
(ActionListener, SystemEventListener, etc. - for full list, please see the spec).
So far I tried locally this (will be filling the table during time):
||JSF artifact||CDI Injection||
|javax.el.ELResolver|works|
|javax.faces.application.ApplicationFactory|works only for ApplicationScoped and Dependent
scoped beans - probably reasonable ?|
|javax.faces.application.NavigationHandler|works|
|javax.faces.application.ResourceHandler|works only for ApplicationScoped and Dependent
scoped beans - probably reasonable ?|
|javax.faces.application.StateManager|works (however there is question about availability
of injected instances in constructor of this custom delegating object|
|javax.faces.component.visit.VisitContextFactory|works|
|javax.faces.context.ExceptionHandlerFactory|works|
|javax.faces.context.ExternalContextFactory|works|
|javax.faces.context.FacesContextFactory|works|
|javax.faces.context.FlashFactory|works|
|javax.faces.context.PartialViewContextFactory|works|
|javax.faces.event.ActionListener|works only when specified also in faces-config|
|javax.faces.event.SystemEventListener|works only for ApplicationScoped and Dependent
scoped beans - probably reasonable ?|
|javax.faces.lifecycle.ClientWindowFactory|works|
|javax.faces.lifecycle.LifecycleFactory|works only for ApplicationScoped and Dependent
scoped beans - probably reasonable ?|
|javax.faces.lifecycle.PhaseListener|works|
|javax.faces.render.RenderKitFactory|works only for ApplicationScoped and Dependent scoped
beans - probably reasonable ?|
|javax.faces.view.ViewDeclarationLanguageFactory|works only for ApplicationScoped and
Dependent scoped beans - probably reasonable ?|
|javax.faces.view.facelets.FaceletCacheFactory|works only for ApplicationScoped and
Dependent scoped beans - probably reasonable ?|
|javax.faces.view.facelets.TagHandlerDelegateFactory|works|
Unify JSF action listener and CDI integration
---------------------------------------------
Key: WFLY-2611
URL:
https://issues.jboss.org/browse/WFLY-2611
Project: WildFly
Issue Type: Feature Request
Security Level: Public(Everyone can see)
Components: CDI / Weld, JSF
Affects Versions: 8.0.0.CR1
Reporter: Tomas Remes
Assignee: Farah Juma
There are three ways, how can user specify custom JSF action listener:
1. Method binding - with actionListener param. This case is ok, meaning CDI injection and
interceptor works for given method/bean.
2. Providing custom implementation - <f:actionListener
type="org.jboss.jsf.listeners.MyActionListener"/>. In this case CDI
doesn't work at all for processAction method of given class.
3. Defining in faces-config - in this case CDI injection works, but interceptor is not
executed.
Producer available at
https://github.com/tremes/javaee7-samples/tree/cdi-testing/jsf/jsf-listen....
Test can be executed with "mvn clean test -Pwildfly-managed-arquillian" or
"mvn clean test -Pwildfly-remote-arquillian" and IMHO all should pass.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira