You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2010/07/15 13:17:02 UTC

svn commit: r964387 - in /myfaces/extensions/cdi/trunk: core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/ jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/listener/phase/

Author: gpetracek
Date: Thu Jul 15 11:17:02 2010
New Revision: 964387

URL: http://svn.apache.org/viewvc?rev=964387&view=rev
Log:
minor refactoring

Modified:
    myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/CodiUtils.java
    myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/listener/phase/JsfRequestLifecyclePhaseListener.java

Modified: myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/CodiUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/CodiUtils.java?rev=964387&r1=964386&r2=964387&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/CodiUtils.java (original)
+++ myfaces/extensions/cdi/trunk/core/impl/src/main/java/org/apache/myfaces/extensions/cdi/core/impl/utils/CodiUtils.java Thu Jul 15 11:17:02 2010
@@ -28,6 +28,7 @@ import javax.enterprise.inject.spi.BeanM
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Properties;
+import java.util.Set;
 
 /**
  * This is a collection of a few useful static helper functions.
@@ -48,6 +49,19 @@ public class CodiUtils
         return bean.create(creationalContext);
     }
 
+    public static <T> T getOrCreateScopedInstanceOfBeanByName(String beanName, Class<T> targetClass)
+    {
+        Set<Bean<?>> foundBeans = BeanManagerProvider.getInstance().getBeanManager().getBeans(beanName);
+
+        if(foundBeans.size() != 1)
+        {
+            throw new IllegalStateException(foundBeans.size() + " beans found for type: " + targetClass.getName());
+        }
+
+        //noinspection unchecked
+        return (T)getOrCreateScopedInstanceOfBean(foundBeans.iterator().next());
+    }
+
     public static <T> T getOrCreateScopedInstanceOfBean(Bean<T> bean)
     {
         BeanManager beanManager = BeanManagerProvider.getInstance().getBeanManager();

Modified: myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/listener/phase/JsfRequestLifecyclePhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/listener/phase/JsfRequestLifecyclePhaseListener.java?rev=964387&r1=964386&r2=964387&view=diff
==============================================================================
--- myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/listener/phase/JsfRequestLifecyclePhaseListener.java (original)
+++ myfaces/extensions/cdi/trunk/jee-modules/jsf-module/impl/src/main/java/org/apache/myfaces/extensions/cdi/javaee/jsf/impl/listener/phase/JsfRequestLifecyclePhaseListener.java Thu Jul 15 11:17:02 2010
@@ -19,8 +19,8 @@
 package org.apache.myfaces.extensions.cdi.javaee.jsf.impl.listener.phase;
 
 import org.apache.myfaces.extensions.cdi.javaee.jsf.api.listener.phase.JsfPhaseListener;
+import static org.apache.myfaces.extensions.cdi.core.impl.utils.CodiUtils.getOrCreateScopedInstanceOfBeanByName;
 
-import javax.faces.context.FacesContext;
 import javax.faces.event.PhaseEvent;
 import javax.faces.event.PhaseId;
 import javax.faces.event.PhaseListener;
@@ -46,10 +46,9 @@ public class JsfRequestLifecyclePhaseLis
 
     private JsfRequestLifecycleBroadcaster resolveBroadcaster()
     {
-        //cdi has to inject the event - TODO refactor it
-        FacesContext facesContext = FacesContext.getCurrentInstance();
-        return (JsfRequestLifecycleBroadcaster) facesContext.getApplication().getELResolver()
-                .getValue(facesContext.getELContext(), null, JsfRequestLifecycleBroadcaster.BEAN_NAME);
+        //cdi has to inject the event
+        return getOrCreateScopedInstanceOfBeanByName(
+                JsfRequestLifecycleBroadcaster.BEAN_NAME, JsfRequestLifecycleBroadcaster.class);
     }
 
     public PhaseId getPhaseId()