[seam-commits] Seam SVN: r14327 - in branches/community/Seam_2_3: jboss-seam-jsf2/src/main/java/org/jboss/seam/jsf and 3 other directories.

seam-commits at lists.jboss.org seam-commits at lists.jboss.org
Mon Feb 20 06:12:03 EST 2012


Author: manaRH
Date: 2012-02-20 06:11:59 -0500 (Mon, 20 Feb 2012)
New Revision: 14327

Modified:
   branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/contexts/Contexts.java
   branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java
   branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java
   branches/community/Seam_2_3/jboss-seam-jsf2/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java
   branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/ConversationTest.java
   branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityPassivationTest.java
   branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityTest.java
Log:
JBSEAM-4898 applied patch from jira issue

Modified: branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/contexts/Contexts.java
===================================================================
--- branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/contexts/Contexts.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/contexts/Contexts.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -8,6 +8,9 @@
 
 import java.util.Map;
 
+import javax.faces.component.UIViewRoot;
+import javax.faces.context.FacesContext;
+
 import org.jboss.seam.Component;
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.bpm.BusinessProcess;
@@ -91,6 +94,19 @@
 
    public static boolean isPageContextActive() 
    {
+      if (pageContext.get() == null) {
+         try {
+             // lazy initialize the page context during restore view
+             // this is similar to the ViewScopedContext.isActive() in Seam 3
+             FacesContext facesContext = FacesContext.getCurrentInstance();
+             if (facesContext != null) {
+                UIViewRoot viewRoot = facesContext.getViewRoot();
+                if (viewRoot != null) {
+                   pageContext.set( new PageContext() );
+                }
+             }
+         } catch (NoClassDefFoundError e) {} // seam-remote does not have this dependency
+      }
       return pageContext.get() != null;
    }
 

Modified: branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java
===================================================================
--- branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -378,6 +378,12 @@
    protected void beforeRestoreView(FacesContext facesContext)
    {
       FacesLifecycle.beginRequest( facesContext.getExternalContext() );
+
+      // this is the same place that WELD restores the conversation
+      Map parameters = facesContext.getExternalContext().getRequestParameterMap();
+      ConversationPropagation.instance().restoreConversationId(parameters);
+      boolean conversationFound = Manager.instance().restoreConversation();
+      FacesLifecycle.resumeConversation( facesContext.getExternalContext() );
    }
    
    /**
@@ -387,9 +393,9 @@
    {
       FacesLifecycle.resumePage();
       Map parameters = facesContext.getExternalContext().getRequestParameterMap();
-      ConversationPropagation.instance().restoreConversationId(parameters);
+//      ConversationPropagation.instance().restoreConversationId(parameters);
       boolean conversationFound = Manager.instance().restoreConversation();
-      FacesLifecycle.resumeConversation( facesContext.getExternalContext() );
+//      FacesLifecycle.resumeConversation( facesContext.getExternalContext() );
       postRestorePage(facesContext, parameters, conversationFound);
    }
 

Modified: branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java
===================================================================
--- branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/jboss-seam-jsf2/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -118,6 +118,11 @@
       return Manager.instance().isLongRunningConversation();
    }
 
+   protected String getConversationIdParameter()
+   {
+      return "conversationId";
+   }
+   
    /**
     * Search in all contexts
     */
@@ -729,6 +734,11 @@
 
       private void restoreViewPhase()
       {
+         if (conversationId != null)
+         {
+            setParameter(getConversationIdParameter(), conversationId);
+         }
+
          phases.beforePhase(new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE));
          try
          {

Modified: branches/community/Seam_2_3/jboss-seam-jsf2/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java
===================================================================
--- branches/community/Seam_2_3/jboss-seam-jsf2/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/jboss-seam-jsf2/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -92,7 +92,7 @@
       assert Contexts.isEventContextActive();
       assert Contexts.isSessionContextActive();
       assert Contexts.isApplicationContextActive();
-      assert !Contexts.isConversationContextActive();
+      assert Contexts.isConversationContextActive();
       
       phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
       
@@ -163,7 +163,7 @@
       assert Contexts.isEventContextActive();
       assert Contexts.isSessionContextActive();
       assert Contexts.isApplicationContextActive();
-      assert !Contexts.isConversationContextActive();
+      assert Contexts.isConversationContextActive();
       
       phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
       
@@ -226,7 +226,7 @@
       assert Contexts.isEventContextActive();
       assert Contexts.isSessionContextActive();
       assert Contexts.isApplicationContextActive();
-      assert !Contexts.isConversationContextActive();
+      assert Contexts.isConversationContextActive();
       
       phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
       
@@ -283,7 +283,7 @@
       assert Contexts.isEventContextActive();
       assert Contexts.isSessionContextActive();
       assert Contexts.isApplicationContextActive();
-      assert !Contexts.isConversationContextActive();
+      assert Contexts.isConversationContextActive();
       
       phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
       
@@ -325,7 +325,7 @@
       assert Contexts.isEventContextActive();
       assert Contexts.isSessionContextActive();
       assert Contexts.isApplicationContextActive();
-      assert !Contexts.isConversationContextActive();
+      assert Contexts.isConversationContextActive();
       
       phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE ) );
       

Modified: branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/ConversationTest.java
===================================================================
--- branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/ConversationTest.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/ConversationTest.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -438,4 +438,9 @@
 
       }.run();
    }
+   
+   protected String getConversationIdParameter()
+   {
+      return "cid";
+   }
 }

Modified: branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityPassivationTest.java
===================================================================
--- branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityPassivationTest.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityPassivationTest.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -231,6 +231,11 @@
 
    }
 
+   protected String getConversationIdParameter()
+   {
+      return "cid";
+   }
+   
    @Name("entitytest.nestedComponent")
    @Scope(ScopeType.CONVERSATION)
    @AutoCreate

Modified: branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityTest.java
===================================================================
--- branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityTest.java	2012-02-20 08:18:11 UTC (rev 14326)
+++ branches/community/Seam_2_3/seam-integration-tests/src/test/java/org/jboss/seam/test/integration/EntityTest.java	2012-02-20 11:11:59 UTC (rev 14327)
@@ -136,6 +136,11 @@
         }
     }
     
+    protected String getConversationIdParameter()
+    {
+       return "cid";
+    }
+    
     @Name("entityExceptionObserver")
     public static class EntityExceptionObserver {
         



More information about the seam-commits mailing list