[seam-commits] Seam SVN: r15471 - in branches/enterprise/WFK-2_1/jboss-seam/src: main/java/org/jboss/seam/core and 5 other directories.
seam-commits at lists.jboss.org
seam-commits at lists.jboss.org
Wed Apr 3 08:28:07 EDT 2013
Author: manaRH
Date: 2013-04-03 08:28:06 -0400 (Wed, 03 Apr 2013)
New Revision: 15471
Added:
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesPage.java
Modified:
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/contexts/Contexts.java
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/core/ConversationPropagation.java
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesManager.java
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamViewHandler.java
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java
branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/navigation/Pages.java
branches/enterprise/WFK-2_1/jboss-seam/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java
Log:
Revert "bz921660 removing FacesPage, moving conversation restoration to pre restore view"
This reverts commit 483c0496ff052a3a874c3b83d22c318ab12b6716.
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/contexts/Contexts.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/contexts/Contexts.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/contexts/Contexts.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -115,6 +115,12 @@
{
log.debug("Page Context will be lazilly created");
FacesLifecycle.resumePage();
+ Map<String, String> parameters = facesContext.getExternalContext().getRequestParameterMap();
+ ConversationPropagation.instance().restoreConversationId(parameters);
+ boolean conversationFound = Manager.instance().restoreConversation();
+ pageContext.get().set("org.jboss.seam.jsf.SeamPhaseListener.conversationFound", conversationFound);
+
+ FacesLifecycle.resumeConversation(facesContext.getExternalContext());
}
}
}
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/core/ConversationPropagation.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/core/ConversationPropagation.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/core/ConversationPropagation.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -54,6 +54,7 @@
{
restoreNaturalConversationId(parameters);
restoreSyntheticConversationId(parameters);
+ restorePageContextConversationId();
getPropagationFromRequestParameter(parameters);
handlePropagationType(parameters);
}
@@ -72,6 +73,26 @@
}
}
+ private void restorePageContextConversationId()
+ {
+ if ( Contexts.isPageContextActive() && isMissing(conversationId) )
+ {
+ //checkPageContext is a workaround for a bug in MySQL server-side state saving
+
+ //if it is not passed as a request parameter,
+ //try to get it from the page context
+ org.jboss.seam.faces.FacesPage page = org.jboss.seam.faces.FacesPage.instance();
+ conversationId = page.getConversationId();
+ parentConversationId = null;
+ validateLongRunningConversation = page.isConversationLongRunning();
+ }
+
+ else
+ {
+ log.trace("Found conversation id in request parameter: " + conversationId);
+ }
+ }
+
private void restoreNaturalConversationId(Map parameters)
{
conversationName = getRequestParameterValue(parameters, CONVERSATION_NAME_PARAMETER);
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesManager.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesManager.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesManager.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -99,6 +99,16 @@
}
redirect(url, parameters, true, true);
}
+
+ @Override
+ protected void storeConversationToViewRootIfNecessary()
+ {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ if ( facesContext!=null && (FacesLifecycle.getPhaseId()==PhaseId.RENDER_RESPONSE || FacesLifecycle.getPhaseId()==PhaseId.RESTORE_VIEW) )
+ {
+ FacesPage.instance().storeConversation();
+ }
+ }
@Override
protected String generateInitialConversationId()
Added: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesPage.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesPage.java (rev 0)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/faces/FacesPage.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -0,0 +1,173 @@
+package org.jboss.seam.faces;
+
+import static org.jboss.seam.annotations.Install.BUILT_IN;
+
+import java.io.Serializable;
+
+import org.jboss.seam.Component;
+import org.jboss.seam.ScopeType;
+import org.jboss.seam.annotations.Install;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+import org.jboss.seam.contexts.Contexts;
+import org.jboss.seam.core.Init;
+import org.jboss.seam.core.Manager;
+//import org.jboss.seam.pageflow.Pageflow;
+import org.jboss.seam.web.Session;
+
+/**
+ * Book-keeping component that persists information
+ * about the conversation associated with the current
+ * page.
+ *
+ * @author Gavin King
+ *
+ */
+ at Name("org.jboss.seam.faces.facesPage")
+ at BypassInterceptors
+ at Install(precedence=BUILT_IN, classDependencies="javax.faces.context.FacesContext")
+ at Scope(ScopeType.PAGE)
+public class FacesPage implements Serializable
+{
+ private static final long serialVersionUID = 4807114041808347239L;
+ private String pageflowName;
+ private Integer pageflowCounter;
+ private String pageflowNodeName;
+
+ private String conversationId;
+ private boolean conversationIsLongRunning;
+
+ //private Map<String, Object> pageParameters;
+
+ public String getConversationId()
+ {
+ return conversationId;
+ }
+
+ public void discardTemporaryConversation()
+ {
+ conversationId = null;
+ conversationIsLongRunning = false;
+ }
+
+ public void discardNestedConversation(String outerConversationId)
+ {
+ conversationId = outerConversationId;
+ conversationIsLongRunning = true;
+ }
+
+ public void storeConversation(String conversationId)
+ {
+ this.conversationId = conversationId;
+ conversationIsLongRunning = true;
+ }
+
+ public void storePageflow()
+ {
+// if ( Init.instance().isJbpmInstalled() )
+// {
+// Pageflow pageflow = Pageflow.instance();
+// if ( pageflow.isInProcess() /*&& !pageflow.getProcessInstance().hasEnded()*/ && Manager.instance().isLongRunningConversation() )
+// {
+// pageflowName = pageflow.getSubProcessInstance().getProcessDefinition().getName();
+// pageflowNodeName = pageflow.getNode().getName();
+// pageflowCounter = pageflow.getPageflowCounter();
+// }
+// else
+// {
+// pageflowName = null;
+// pageflowNodeName = null;
+// pageflowCounter = null;
+// }
+// }
+ }
+
+ public static FacesPage instance()
+ {
+ if ( !Contexts.isPageContextActive() )
+ {
+ throw new IllegalStateException("No page context active");
+ }
+ return (FacesPage) Component.getInstance(FacesPage.class, ScopeType.PAGE);
+ }
+
+ public boolean isConversationLongRunning()
+ {
+ return conversationIsLongRunning;
+ }
+
+ public Integer getPageflowCounter()
+ {
+ return pageflowCounter;
+ }
+
+ public String getPageflowName()
+ {
+ return pageflowName;
+ }
+
+ public String getPageflowNodeName()
+ {
+ return pageflowNodeName;
+ }
+
+ public void storeConversation()
+ {
+ Manager manager = Manager.instance();
+
+ //we only need to execute this code when we are in the
+ //RENDER_RESPONSE phase, ie. not before redirects
+
+ Session session = Session.getInstance();
+ boolean sessionInvalid = session!=null && session.isInvalid();
+ if ( !sessionInvalid && manager.isLongRunningConversation() )
+ {
+ storeConversation( manager.getCurrentConversationId() );
+ }
+ else if ( !sessionInvalid && manager.isNestedConversation() )
+ {
+ discardNestedConversation( manager.getParentConversationId() );
+ }
+ else
+ {
+ discardTemporaryConversation();
+ }
+
+ /*if ( !sessionInvalid && Init.instance().isClientSideConversations() )
+ {
+ // if we are using client-side conversations, put the
+ // map containing the conversation context variables
+ // into the view root (or remove it for a temp
+ // conversation context)
+ Contexts.getConversationContext().flush();
+ }*/
+
+ }
+
+ /*public Map<String, Object> getPageParameters()
+ {
+ return pageParameters==null ? Collections.EMPTY_MAP : pageParameters;
+ }
+
+ public void setPageParameters(Map<String, Object> pageParameters)
+ {
+ this.pageParameters = pageParameters.isEmpty() ? null : pageParameters;
+ }
+
+ /**
+ * Used by test harness
+ *
+ * @param name the page parameter name
+ * @param value the value
+ */
+ /*public void setPageParameter(String name, Object value)
+ {
+ if (pageParameters==null)
+ {
+ pageParameters = new HashMap<String, Object>();
+ }
+ pageParameters.put(name, value);
+ }*/
+
+}
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamPhaseListener.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -34,6 +34,7 @@
import org.jboss.seam.exception.Exceptions;
import org.jboss.seam.faces.FacesManager;
import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.faces.FacesPage;
import org.jboss.seam.faces.Switcher;
import org.jboss.seam.faces.Validation;
import org.jboss.seam.log.LogProvider;
@@ -115,19 +116,6 @@
{
beforeServletPhase(event);
}
-
- // We resume conversation after handleTransactionsBeforePhase,
- // so that Conversation-scoped entityManager has a transaction to enlist
- if (event.getPhaseId() == RESTORE_VIEW) {
- FacesContext facesContext = event.getFacesContext();
- Map<String, String> parameters = facesContext.getExternalContext().getRequestParameterMap();
- ConversationPropagation.instance().restoreConversationId(parameters);
- boolean conversationFound = Manager.instance().restoreConversation();
-
- Contexts.getEventContext().set("org.jboss.seam.jsf.SeamPhaseListener.conversationFound", conversationFound);
- FacesLifecycle.resumeConversation(facesContext.getExternalContext());
- }
-
raiseEventsBeforePhase(event);
}
catch (Exception e)
@@ -396,15 +384,18 @@
* Restore the page and conversation contexts during a JSF request
*/
protected void afterRestoreView(FacesContext facesContext)
- {
- boolean conversationFound = Contexts.isEventContextActive() ? Contexts.getEventContext().isSet("org.jboss.seam.jsf.SeamPhaseListener.conversationFound") : false;
-
- if (!Contexts.isPageContextActive()) {
- FacesLifecycle.resumePage();
- }
-
- Map parameters = facesContext.getExternalContext().getRequestParameterMap();
- postRestorePage(facesContext, parameters, conversationFound);
+ {
+ boolean conversationFound = Contexts.isPageContextActive() ? Contexts.getPageContext().isSet("org.jboss.seam.jsf.SeamPhaseListener.conversationFound") : false;
+ FacesLifecycle.resumePage();
+ Map parameters = facesContext.getExternalContext().getRequestParameterMap();
+ if (!conversationFound) // there is exceptional case when restoring of conversation wasn't called while page context was lazily initialized
+ {
+ ConversationPropagation.instance().restoreConversationId(parameters);
+ conversationFound = Manager.instance().restoreConversation();
+ }
+ FacesLifecycle.resumeConversation( facesContext.getExternalContext() );
+ postRestorePage(facesContext, parameters, conversationFound);
+
}
public void raiseEventsBeforePhase(PhaseEvent event)
@@ -500,6 +491,9 @@
FacesManager.instance().prepareBackswitch(facesContext);
}
+ FacesPage.instance().storeConversation();
+ FacesPage.instance().storePageflow();
+
PersistenceContexts persistenceContexts = PersistenceContexts.instance();
if (persistenceContexts != null)
{
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamViewHandler.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamViewHandler.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/jsf/SeamViewHandler.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -99,22 +99,18 @@
if (!getSource().equals(Source.BOOKMARKABLE) && !getSource().equals(Source.REDIRECT) )
{
- if (conversation.isLongRunning())
+ if ( !conversation.isNested() || conversation.isLongRunning() )
{
return new FacesUrlTransformer(actionUrl, facesContext)
.appendConversationIdIfNecessary(conversationIdParameter, conversation.getId())
.getUrl();
}
- else if (conversation.isNested())
+ else
{
return new FacesUrlTransformer(actionUrl, facesContext)
.appendConversationIdIfNecessary(conversationIdParameter, conversation.getParentId())
.getUrl();
}
- else
- {
- return actionUrl;
- }
} else {
return actionUrl;
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/mock/AbstractSeamTest.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -78,7 +78,6 @@
protected MockHttpSession session;
private Map<String, Map> conversationViewRootAttributes;
protected Filter seamFilter;
- protected String conversationIdParameter = "conversationId";
private static ServletContext realServletContext = null;
@@ -123,7 +122,7 @@
protected String getConversationIdParameter()
{
- return conversationIdParameter;
+ return "conversationId";
}
/**
@@ -742,12 +741,6 @@
setParameter(getConversationIdParameter(), conversationId);
}
phases.beforePhase(new PhaseEvent(facesContext, PhaseId.RESTORE_VIEW, MockLifecycle.INSTANCE));
-
- // We cannot get conversationIdParameter before restore view phase, as Manager is in
- // event context, which is not active yet, so we hope we set this in the first request
- // and we assume it won't change. In other cases, you may just override getConversationIdParameter();
- conversationIdParameter = Manager.instance().getConversationIdParameter();
-
try
{
UIViewRoot viewRoot = facesContext.getApplication().getViewHandler().createView(facesContext, getViewId());
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/navigation/Pages.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/navigation/Pages.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/main/java/org/jboss/seam/navigation/Pages.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -568,9 +568,21 @@
{
noConversation();
+ //stuff from jPDL takes precedence
+ org.jboss.seam.faces.FacesPage facesPage = org.jboss.seam.faces.FacesPage.instance();
+ String pageflowName = facesPage.getPageflowName();
+ String pageflowNodeName = facesPage.getPageflowNodeName();
+
String noConversationViewId = null;
- String viewId = Pages.getCurrentViewId();
- noConversationViewId = getNoConversationViewId(viewId);
+ if (pageflowName==null || pageflowNodeName==null)
+ {
+ String viewId = Pages.getCurrentViewId();
+ noConversationViewId = getNoConversationViewId(viewId);
+ }
+ else
+ {
+ //noConversationViewId = Pageflow.instance().getNoConversationViewId(pageflowName, pageflowNodeName);
+ }
if (noConversationViewId!=null)
{
Modified: branches/enterprise/WFK-2_1/jboss-seam/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java
===================================================================
--- branches/enterprise/WFK-2_1/jboss-seam/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java 2013-04-03 12:27:45 UTC (rev 15470)
+++ branches/enterprise/WFK-2_1/jboss-seam/src/test/java/org/jboss/seam/test/unit/PhaseListenerTest.java 2013-04-03 12:28:06 UTC (rev 15471)
@@ -26,17 +26,16 @@
import org.jboss.seam.core.ResourceLoader;
import org.jboss.seam.faces.FacesManager;
import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.faces.FacesPage;
import org.jboss.seam.faces.Validation;
import org.jboss.seam.jsf.SeamPhaseListener;
import org.jboss.seam.jsf.SeamStateManager;
import org.jboss.seam.mock.MockApplication;
import org.jboss.seam.mock.MockExternalContext;
import org.jboss.seam.mock.MockFacesContext;
-import org.jboss.seam.mock.MockHttpServletRequest;
import org.jboss.seam.mock.MockLifecycle;
import org.jboss.seam.navigation.Pages;
import org.jboss.seam.servlet.ServletRequestSessionMap;
-import org.jboss.seam.web.ServletContexts;
import org.jboss.seam.web.Session;
import org.testng.annotations.Test;
@@ -50,6 +49,7 @@
appContext.set( Seam.getComponentName(Init.class), init );
installComponent(appContext, FacesManager.class);
installComponent(appContext, ConversationEntries.class);
+ installComponent(appContext, FacesPage.class);
installComponent(appContext, Conversation.class);
installComponent(appContext, FacesMessages.class);
installComponent(appContext, Pages.class);
@@ -58,7 +58,6 @@
installComponent(appContext, Session.class);
installComponent(appContext, ConversationPropagation.class);
installComponent(appContext, ResourceLoader.class);
- installComponent(appContext, ServletContexts.class);
}
private void installComponent(Context appContext, Class clazz)
@@ -94,7 +93,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 ) );
@@ -116,7 +115,9 @@
phases.beforePhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
- assert facesContext.getViewRoot().getViewMap().size()==0;
+ // there is one additional item - conversationFound
+ assert facesContext.getViewRoot().getViewMap().size()==2;
+ assert ( (FacesPage) getPageMap(facesContext).get( getPrefix() + Seam.getComponentName(FacesPage.class) ) ).getConversationId()==null;
assert Contexts.isEventContextActive();
assert Contexts.isSessionContextActive();
assert Contexts.isApplicationContextActive();
@@ -143,8 +144,7 @@
{
MockFacesContext facesContext = createFacesContext();
- MockHttpServletRequest request = (MockHttpServletRequest)facesContext.getExternalContext().getRequest();
- request.getParameters().put("conversationId", new String[] {"2"});
+ getPageMap(facesContext).put( getPrefix() + Seam.getComponentName(FacesPage.class), new FacesPage() { @Override public String getConversationId() { return "2"; } });
List<String> conversationIdStack = new ArrayList<String>();
conversationIdStack.add("2");
@@ -165,7 +165,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 ) );
@@ -196,9 +196,10 @@
facesContext.getApplication().getStateManager().saveView(facesContext);
- assert Manager.instance().getCurrentConversationId().equals("2");
phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
+ assert ( (FacesPage) getPageMap(facesContext).get( getPrefix() + Seam.getComponentName(FacesPage.class) ) ).getConversationId().equals("2");
+
assert !Contexts.isEventContextActive();
assert !Contexts.isSessionContextActive();
assert !Contexts.isApplicationContextActive();
@@ -227,7 +228,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 ) );
@@ -258,7 +259,7 @@
facesContext.getApplication().getStateManager().saveView(facesContext);
- assert facesContext.getViewRoot().getViewMap().size()==0;
+ assert facesContext.getViewRoot().getViewMap().size()==2;
phases.afterPhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
@@ -284,7 +285,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 ) );
@@ -326,7 +327,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 ) );
@@ -335,8 +336,8 @@
phases.beforePhase( new PhaseEvent(facesContext, PhaseId.RENDER_RESPONSE, MockLifecycle.INSTANCE ) );
- assert facesContext.getViewRoot().getViewMap().size()==0;
- //assert ( (FacesPage) getPageMap(facesContext).get( getPrefix() + Seam.getComponentName(FacesPage.class) ) ).getConversationId()==null;
+ assert facesContext.getViewRoot().getViewMap().size()==2;
+ assert ( (FacesPage) getPageMap(facesContext).get( getPrefix() + Seam.getComponentName(FacesPage.class) ) ).getConversationId()==null;
assert Contexts.isEventContextActive();
assert Contexts.isSessionContextActive();
assert Contexts.isApplicationContextActive();
More information about the seam-commits
mailing list