You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lu...@apache.org on 2011/10/26 03:59:22 UTC

svn commit: r1188994 - /myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java

Author: lu4242
Date: Wed Oct 26 01:59:22 2011
New Revision: 1188994

URL: http://svn.apache.org/viewvc?rev=1188994&view=rev
Log:
MYFACES-3372 Multiple Lifecycle instances are not taken into account when setup phase listeners

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java?rev=1188994&r1=1188993&r2=1188994&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/config/FacesConfigurator.java Wed Oct 26 01:59:22 2011
@@ -29,6 +29,7 @@ import java.net.URLConnection;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Comparator;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -944,31 +945,37 @@ public class FacesConfigurator
         // create the lifecycle used by the app
         LifecycleFactory lifecycleFactory
                 = (LifecycleFactory) FactoryFinder.getFactory(FactoryFinder.LIFECYCLE_FACTORY);
-        Lifecycle lifecycle = lifecycleFactory.getLifecycle(getLifecycleId());
-
-        // add phase listeners
-        for (String listenerClassName : getDispenser().getLifecyclePhaseListeners())
-        {
-            try
+        
+        //Lifecycle lifecycle = lifecycleFactory.getLifecycle(getLifecycleId());
+        for (Iterator<String> it = lifecycleFactory.getLifecycleIds(); it.hasNext();)
+        {
+            Lifecycle lifecycle = lifecycleFactory.getLifecycle(it.next());
+            
+            // add phase listeners
+            for (String listenerClassName : getDispenser().getLifecyclePhaseListeners())
             {
-                lifecycle.addPhaseListener((PhaseListener)
-                        ClassUtils.newInstance(listenerClassName, PhaseListener.class));
+                try
+                {
+                    lifecycle.addPhaseListener((PhaseListener)
+                            ClassUtils.newInstance(listenerClassName, PhaseListener.class));
+                }
+                catch (ClassCastException e)
+                {
+                    log.severe("Class " + listenerClassName + " does not implement PhaseListener");
+                }
             }
-            catch (ClassCastException e)
+
+            // if ProjectStage is Development, install the DebugPhaseListener
+            FacesContext facesContext = FacesContext.getCurrentInstance();
+            if (facesContext.isProjectStage(ProjectStage.Development) &&
+                    MyfacesConfig.getCurrentInstance(facesContext.getExternalContext()).isDebugPhaseListenerEnabled())
             {
-                log.severe("Class " + listenerClassName + " does not implement PhaseListener");
+                lifecycle.addPhaseListener(new DebugPhaseListener());
             }
         }
-
-        // if ProjectStage is Development, install the DebugPhaseListener
-        FacesContext facesContext = FacesContext.getCurrentInstance();
-        if (facesContext.isProjectStage(ProjectStage.Development) &&
-                MyfacesConfig.getCurrentInstance(facesContext.getExternalContext()).isDebugPhaseListenerEnabled())
-        {
-            lifecycle.addPhaseListener(new DebugPhaseListener());
-        }
     }
 
+    /*
     private String getLifecycleId()
     {
         String id = _externalContext.getInitParameter(FacesServlet.LIFECYCLE_ID_ATTR);
@@ -979,7 +986,7 @@ public class FacesConfigurator
         }
 
         return LifecycleFactory.DEFAULT_LIFECYCLE;
-    }
+    }*/
 
     private void handleSerialFactory()
     {