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 2014/09/02 21:03:52 UTC
svn commit: r1622093 - in /myfaces/core/trunk/impl/src:
main/java/org/apache/myfaces/view/facelets/
test/java/org/apache/myfaces/view/facelets/pss/acid/
test/java/org/apache/myfaces/view/facelets/pss/acid/component/
test/java/org/apache/myfaces/view/fa...
Author: lu4242
Date: Tue Sep 2 19:03:52 2014
New Revision: 1622093
URL: http://svn.apache.org/r1622093
Log:
MYFACES-3918 DefaultFaceletsStateManagementStrategy: keep list of removed client IDs stable over time
Added:
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIDynamicFormComponent.java
- copied, changed from r1587542, myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIAddComponent.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingFormBean.java
- copied, changed from r1587542, myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingBean.java
myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding2.xhtml
- copied, changed from r1587542, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding1.xhtml
myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/dynamicForm.xhtml
- copied, changed from r1587542, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/recursive.xhtml
myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page3.xhtml
- copied, changed from r1587542, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page2.xhtml
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/AcidMyFacesRequestTestCase.java
myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/WEB-INF/testcomponent.taglib.xml
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java?rev=1622093&r1=1622092&r2=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java Tue Sep 2 19:03:52 2014
@@ -450,8 +450,13 @@ public class DefaultFaceletsStateManagem
String clientId = clientIdsRemoved.get(i);
if (!idsRemovedSet.contains(clientId))
{
- view.invokeOnComponent(context, clientId, new RemoveComponentCallback());
- idsRemovedSet.add(clientId);
+ RemoveComponentCallback callback = new RemoveComponentCallback();
+ view.invokeOnComponent(context, clientId, callback);
+ if (callback.isComponentFound())
+ {
+ //Add only if component found
+ idsRemovedSet.add(clientId);
+ }
}
}
clientIdsRemoved.clear();
@@ -510,6 +515,13 @@ public class DefaultFaceletsStateManagem
public static class RemoveComponentCallback implements ContextCallback
{
+ private boolean componentFound;
+
+ public RemoveComponentCallback()
+ {
+ this.componentFound = false;
+ }
+
public void invokeContextCallback(FacesContext context,
UIComponent target)
{
@@ -531,9 +543,22 @@ public class DefaultFaceletsStateManagem
}
if (key != null)
{
- target.getParent().getFacets().remove(key);
+ UIComponent removedTarget = target.getParent().getFacets().remove(key);
+ if (removedTarget != null)
+ {
+ this.componentFound = true;
+ }
}
}
+ else
+ {
+ this.componentFound = true;
+ }
+ }
+
+ public boolean isComponentFound()
+ {
+ return this.componentFound;
}
}
@@ -1345,9 +1370,25 @@ public class DefaultFaceletsStateManagem
public void suscribeListeners(UIViewRoot uiViewRoot)
{
- PostAddPreRemoveFromViewListener componentListener = new PostAddPreRemoveFromViewListener();
- uiViewRoot.subscribeToViewEvent(PostAddToViewEvent.class, componentListener);
- uiViewRoot.subscribeToViewEvent(PreRemoveFromViewEvent.class, componentListener);
+ boolean listenerSubscribed = false;
+ List<SystemEventListener> pavList = uiViewRoot.getViewListenersForEventClass(PostAddToViewEvent.class);
+ if (pavList != null)
+ {
+ for (SystemEventListener listener : pavList)
+ {
+ if (listener instanceof PostAddPreRemoveFromViewListener)
+ {
+ listenerSubscribed = true;
+ break;
+ }
+ }
+ }
+ if (!listenerSubscribed)
+ {
+ PostAddPreRemoveFromViewListener componentListener = new PostAddPreRemoveFromViewListener();
+ uiViewRoot.subscribeToViewEvent(PostAddToViewEvent.class, componentListener);
+ uiViewRoot.subscribeToViewEvent(PreRemoveFromViewEvent.class, componentListener);
+ }
}
protected RenderKitFactory getRenderKitFactory()
Modified: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/AcidMyFacesRequestTestCase.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/AcidMyFacesRequestTestCase.java?rev=1622093&r1=1622092&r2=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/AcidMyFacesRequestTestCase.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/AcidMyFacesRequestTestCase.java Tue Sep 2 19:03:52 2014
@@ -18,6 +18,9 @@
*/
package org.apache.myfaces.view.facelets.pss.acid;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
import javax.el.ExpressionFactory;
import javax.faces.application.StateManager;
import javax.faces.component.UICommand;
@@ -32,6 +35,7 @@ import org.apache.myfaces.shared.config.
import org.apache.myfaces.test.mock.MockPrintWriter;
import org.apache.myfaces.view.facelets.pss.acid.component.UISimpleComponent1;
import org.apache.myfaces.view.facelets.pss.acid.managed.CheckActionEventBean;
+import org.apache.myfaces.view.facelets.pss.acid.managed.ComponentBindingFormBean;
import org.apache.myfaces.view.facelets.pss.acid.managed.CustomSessionBean;
import org.apache.myfaces.view.facelets.pss.acid.managed.ForEachBean;
import org.apache.myfaces.view.facelets.pss.acid.managed.ResourceDependencyBean;
@@ -489,6 +493,223 @@ public class AcidMyFacesRequestTestCase
}
@Test
+ public void testComponentBinding2() throws Exception
+ {
+ startViewRequest("/componentBinding2.xhtml");
+ processLifecycleExecuteAndRender();
+
+ UIComponent comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+ int fieldCount = comp.getChildCount();
+ Set<String> clientIds = new TreeSet<String>();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ UICommand button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+ processLifecycleExecute();
+
+ comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+ // Check the components are restored.
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ Set<String> clientIds2 = new TreeSet<String>();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ ComponentBindingFormBean formBean = facesContext.getApplication().evaluateExpressionGet(
+ facesContext, "#{componentBindingFormBean}", ComponentBindingFormBean.class);
+ formBean.forceRebuild();
+
+ processLifecycleRender();
+
+ comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+ fieldCount = comp.getChildCount();
+ clientIds.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+
+ processLifecycleExecute();
+
+ comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ clientIds2.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ formBean = facesContext.getApplication().evaluateExpressionGet(
+ facesContext, "#{componentBindingFormBean}", ComponentBindingFormBean.class);
+ formBean.forceRebuild();
+
+ processLifecycleRender();
+
+ comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+ fieldCount = comp.getChildCount();
+ clientIds.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+
+ processLifecycleExecute();
+
+ comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ clientIds2.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ formBean = facesContext.getApplication().evaluateExpressionGet(
+ facesContext, "#{componentBindingFormBean}", ComponentBindingFormBean.class);
+ formBean.forceRebuild();
+
+ processLifecycleRender();
+
+ comp = facesContext.getViewRoot().findComponent("mainForm:panel");
+ Assert.assertNotNull(comp);
+
+
+ endRequest();
+ }
+
+ @Test
+ public void testDynamicForm() throws Exception
+ {
+ startViewRequest("/dynamicForm.xhtml");
+ processLifecycleExecuteAndRender();
+ UIComponent comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ int fieldCount = comp.getChildCount();
+ Set<String> clientIds = new TreeSet<String>();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ UICommand button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+ processLifecycleExecute();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ // Check the components are restored.
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ Set<String> clientIds2 = new TreeSet<String>();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ processLifecycleRender();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ fieldCount = comp.getChildCount();
+ clientIds.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+ processLifecycleExecute();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ // Check the components are restored.
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ clientIds2.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ // Check the components are restored.
+ processLifecycleRender();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ fieldCount = comp.getChildCount();
+ clientIds.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+ processLifecycleExecute();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ // Check the components are restored.
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ clientIds2.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ processLifecycleRender();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ fieldCount = comp.getChildCount();
+ clientIds.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ button = (UICommand) facesContext.getViewRoot().findComponent("mainForm:postback");
+ client.submit(button);
+ processLifecycleExecute();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ // Check the components are restored.
+ Assert.assertEquals(fieldCount, comp.getChildCount());
+ clientIds2.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds2.add(c.getClientId(facesContext));
+ }
+ Assert.assertArrayEquals(clientIds.toArray(), clientIds2.toArray());
+
+ processLifecycleRender();
+ comp = facesContext.getViewRoot().findComponent("mainForm:dynPanel");
+ Assert.assertNotNull(comp);
+ fieldCount = comp.getChildCount();
+ clientIds.clear();
+ for (UIComponent c : comp.getChildren())
+ {
+ clientIds.add(c.getClientId(facesContext));
+ }
+
+ endRequest();
+ }
+
+ @Test
public void testResourceDependency() throws Exception
{
startViewRequest("/resourceDependency1.xhtml");
Copied: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIDynamicFormComponent.java (from r1587542, myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIAddComponent.java)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIDynamicFormComponent.java?p2=myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIDynamicFormComponent.java&p1=myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIAddComponent.java&r1=1587542&r2=1622093&rev=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIAddComponent.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/component/UIDynamicFormComponent.java Tue Sep 2 19:03:52 2014
@@ -18,18 +18,19 @@
*/
package org.apache.myfaces.view.facelets.pss.acid.component;
+import java.util.Random;
import javax.faces.component.FacesComponent;
import javax.faces.component.UIComponentBase;
+import javax.faces.component.UIOutput;
import javax.faces.component.UIViewRoot;
-import javax.faces.component.html.HtmlOutputText;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.PreRenderViewEvent;
import javax.faces.event.SystemEvent;
import javax.faces.event.SystemEventListener;
-@FacesComponent(value = "com.myapp.UIAddComponent")
-public class UIAddComponent extends UIComponentBase implements
+@FacesComponent(value = "com.myapp.UIDynamicFormComponent")
+public class UIDynamicFormComponent extends UIComponentBase implements
SystemEventListener
{
@@ -37,7 +38,7 @@ public class UIAddComponent extends UICo
// Constructor
//
- public UIAddComponent()
+ public UIDynamicFormComponent()
{
setRendererType("testcomponent");
@@ -67,13 +68,29 @@ public class UIAddComponent extends UICo
public void processEvent(SystemEvent event) throws AbortProcessingException
{
-
- if (!FacesContext.getCurrentInstance().isPostback())
+ // Clear the existing tree.
+ this.getChildren().clear();
+
+ Integer index = (Integer) this.getAttributes().get("index");
+ if (index == null)
+ {
+ index = 1;
+ }
+ else
{
+ index = index + 1;
+ }
+ this.getAttributes().put("index", index);
+
+ // Start building the new component tree with formRoot as parent.
+ Random random = new Random() ;
+ int n = random.nextInt(9)+1;
- HtmlOutputText component = new HtmlOutputText();
- component.setValue("Dynamically added child");
- getChildren().add(component);
+ for(int i = 0; i < n; i++)
+ {
+ UIOutput input = new UIOutput();
+ input.setId("input_"+index+"_"+i);
+ this.getChildren().add(input);
}
}
}
Copied: myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingFormBean.java (from r1587542, myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingBean.java)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingFormBean.java?p2=myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingFormBean.java&p1=myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingBean.java&r1=1587542&r2=1622093&rev=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingBean.java (original)
+++ myfaces/core/trunk/impl/src/test/java/org/apache/myfaces/view/facelets/pss/acid/managed/ComponentBindingFormBean.java Tue Sep 2 19:03:52 2014
@@ -18,54 +18,62 @@
*/
package org.apache.myfaces.view.facelets.pss.acid.managed;
+import java.util.Random;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
import javax.faces.component.UIOutput;
import javax.faces.component.UIPanel;
import javax.faces.component.html.HtmlPanelGroup;
-import javax.faces.context.FacesContext;
/**
*
- * @author Leonardo Uribe
*/
-@ManagedBean(name="componentBindingBean")
+@ManagedBean(name="componentBindingFormBean")
@RequestScoped
-public class ComponentBindingBean
+public class ComponentBindingFormBean
{
+ private boolean rebuildDone = false;
+
private UIPanel panel;
public UIPanel getPanel()
{
+ if (!rebuildDone)
+ {
+ rebuildForm();
+ }
+ return panel;
+ }
+
+ public void rebuildForm()
+ {
if (panel == null)
{
panel = new HtmlPanelGroup();
- if (FacesContext.getCurrentInstance().isPostback())
- {
- // Just try to mess the binding. In theory this does
- // not have effect, because the binding with children
- // or facets should be restored fully.
- UIOutput out2 = new UIOutput();
- out2.setValue("hello2");
- panel.getChildren().add(out2);
- }
- UIOutput out = new UIOutput();
- out.setValue("hello1");
- panel.getChildren().add(out);
- if (!FacesContext.getCurrentInstance().isPostback())
- {
- // Store something into the state
- panel.getAttributes().put("attr1", "value1");
- panel.getChildren().get(0).getAttributes().put("attr2", "value2");
- }
- else
- {
- //Try to mess the state, in theory it should not have effect
- panel.getAttributes().remove("attr1");
- panel.getChildren().get(0).getAttributes().remove("attr2");
- }
+ //panel.setTransient(true);
+ panel.setId("formRoot");
}
- return panel;
+
+ // Clear the existing tree.
+ panel.getChildren().clear();
+
+ // Start building the new component tree with formRoot as parent.
+ Random random = new Random() ;
+ int n = random.nextInt(9)+1;
+
+ for(int i = 0; i < n; i++)
+ {
+ UIOutput input = new UIOutput();
+ input.setId("input_"+i);
+ panel.getChildren().add(input);
+ }
+
+ this.rebuildDone = true;
+ }
+
+ public void forceRebuild()
+ {
+ rebuildForm();
}
public void setPanel(UIPanel panel)
Modified: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/WEB-INF/testcomponent.taglib.xml
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/WEB-INF/testcomponent.taglib.xml?rev=1622093&r1=1622092&r2=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/WEB-INF/testcomponent.taglib.xml (original)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/WEB-INF/testcomponent.taglib.xml Tue Sep 2 19:03:52 2014
@@ -99,5 +99,12 @@
<component-type>com.myapp.UIAddSimpleCCVDL</component-type>
</component>
</tag>
+
+ <tag>
+ <tag-name>dynamicFormComponent</tag-name>
+ <component>
+ <component-type>com.myapp.UIDynamicFormComponent</component-type>
+ </component>
+ </tag>
</facelet-taglib>
\ No newline at end of file
Copied: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding2.xhtml (from r1587542, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding1.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding2.xhtml?p2=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding2.xhtml&p1=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding1.xhtml&r1=1587542&r2=1622093&rev=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding1.xhtml (original)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/componentBinding2.xhtml Tue Sep 2 19:03:52 2014
@@ -19,8 +19,8 @@
<h:head>
</h:head>
<h:body>
- <h:panelGroup id="panel" binding="#{componentBindingBean.panel}"/>
<h:form id="mainForm">
+ <h:panelGroup id="panel" binding="#{componentBindingFormBean.panel}"/>
<h:commandButton id="postback" value="POSTBACK"/>
</h:form>
</h:body>
Copied: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/dynamicForm.xhtml (from r1587542, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/recursive.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/dynamicForm.xhtml?p2=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/dynamicForm.xhtml&p1=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/recursive.xhtml&r1=1587542&r2=1622093&rev=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/recursive.xhtml (original)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/dynamicForm.xhtml Tue Sep 2 19:03:52 2014
@@ -31,7 +31,7 @@
<h:form id="mainForm">
- <test:recursivecomponent id="component"/>
+ <test:dynamicFormComponent id="dynPanel"/>
<br/>
Copied: myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page3.xhtml (from r1587542, myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page2.xhtml)
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page3.xhtml?p2=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page3.xhtml&p1=myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page2.xhtml&r1=1587542&r2=1622093&rev=1622093&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page2.xhtml (original)
+++ myfaces/core/trunk/impl/src/test/resources/org/apache/myfaces/view/facelets/pss/acid/page3.xhtml Tue Sep 2 19:03:52 2014
@@ -17,5 +17,8 @@
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:ui="http://java.sun.com/jsf/facelets">
-<h:outputText id="component2" value="Page 2"/>
+<h:outputText id="component1" value="Page 2"/>
+<h:panelGrid id="grid1" columns="1">
+ <h:outputText id="component3" value="Hello Component 3"/>
+</h:panelGrid>
</ui:composition>