You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by ta...@apache.org on 2017/09/09 08:21:39 UTC
svn commit: r1807858 -
/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducerExtension.java
Author: tandraschko
Date: Sat Sep 9 08:21:39 2017
New Revision: 1807858
URL: http://svn.apache.org/viewvc?rev=1807858&view=rev
Log:
MYFACES-4151 When @FacesConfig is not present, EL resolution in managed beans should not be performed
Modified:
myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducerExtension.java
Modified: myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducerExtension.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducerExtension.java?rev=1807858&r1=1807857&r2=1807858&view=diff
==============================================================================
--- myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducerExtension.java (original)
+++ myfaces/core/branches/2.3.x/impl/src/main/java/org/apache/myfaces/cdi/JsfArtifactProducerExtension.java Sat Sep 9 08:21:39 2017
@@ -20,22 +20,46 @@ package org.apache.myfaces.cdi;
import javax.enterprise.event.Observes;
import javax.enterprise.inject.spi.AfterBeanDiscovery;
+import javax.enterprise.inject.spi.AfterTypeDiscovery;
import javax.enterprise.inject.spi.AnnotatedType;
import javax.enterprise.inject.spi.BeanManager;
-import javax.enterprise.inject.spi.BeforeBeanDiscovery;
import javax.enterprise.inject.spi.Extension;
+import javax.enterprise.inject.spi.ProcessAnnotatedType;
+import javax.faces.annotation.FacesConfig;
public class JsfArtifactProducerExtension implements Extension
{
- void beforeBeanDiscovery(@Observes BeforeBeanDiscovery event, BeanManager beanManager)
+ private boolean registerCdiProducers = false;
+
+ <T> void processAnnotatedType(@Observes ProcessAnnotatedType<T> event, BeanManager beanManager)
+ {
+ FacesConfig facesConfig = event.getAnnotatedType().getAnnotation(FacesConfig.class);
+ if (facesConfig != null && facesConfig.version() != FacesConfig.Version.JSF_2_2)
+ {
+ registerCdiProducers = true;
+ }
+ }
+
+ void afterTypeDiscovery(@Observes AfterTypeDiscovery event, BeanManager beanManager)
{
- AnnotatedType<JsfArtifactProducer> jsfArtifactProducer =
- beanManager.createAnnotatedType(JsfArtifactProducer.class);
- event.addAnnotatedType(jsfArtifactProducer);
+ if (registerCdiProducers)
+ {
+ AnnotatedType<JsfArtifactProducer> jsfArtifactProducer =
+ beanManager.createAnnotatedType(JsfArtifactProducer.class);
+ event.addAnnotatedType(jsfArtifactProducer, null);
+ }
}
void afterBeanDiscovery(@Observes AfterBeanDiscovery afterBeanDiscovery, BeanManager beanManager)
{
- afterBeanDiscovery.addBean(new JsfArtifactFlowMapProducer());
+ if (registerCdiProducers)
+ {
+ afterBeanDiscovery.addBean(new JsfArtifactFlowMapProducer());
+ }
+ }
+
+ public boolean isRegisterCdiProducers()
+ {
+ return registerCdiProducers;
}
}