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 2012/03/07 21:57:51 UTC
svn commit: r1298110 - in
/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces:
context/servlet/PartialViewContextImpl.java
lifecycle/DefaultRestoreViewSupport.java
view/facelets/DefaultFaceletsStateManagementStrategy.java
Author: lu4242
Date: Wed Mar 7 20:57:51 2012
New Revision: 1298110
URL: http://svn.apache.org/viewvc?rev=1298110&view=rev
Log:
MYFACES-3478 [perf] Replace HashSet with EnumSet for VisitHints (Thanks to Martin Koci for provide this patch)
Modified:
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java?rev=1298110&r1=1298109&r2=1298110&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/context/servlet/PartialViewContextImpl.java Wed Mar 7 20:57:51 2012
@@ -21,7 +21,8 @@ package org.apache.myfaces.context.servl
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.HashSet;
+import java.util.Collections;
+import java.util.EnumSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
@@ -67,6 +68,13 @@ public class PartialViewContextImpl exte
* will be changed for 2.1 to the official marker
*/
private static final String PARTIAL_IFRAME = "org.apache.myfaces.partial.iframe";
+
+ private static final Set<VisitHint> PARTIAL_EXECUTE_HINTS = Collections.unmodifiableSet(
+ EnumSet.of(VisitHint.EXECUTE_LIFECYCLE, VisitHint.SKIP_UNRENDERED));
+
+ // unrendered have to be skipped, transient definitely must be added to our list!
+ private static final Set<VisitHint> PARTIAL_RENDER_HINTS =
+ Collections.unmodifiableSet(EnumSet.of(VisitHint.SKIP_UNRENDERED));
private FacesContext _facesContext = null;
private boolean _released = false;
@@ -406,10 +414,9 @@ public class PartialViewContextImpl exte
{
return;
}
- Set<VisitHint> hints = new HashSet<VisitHint>();
- hints.add(VisitHint.EXECUTE_LIFECYCLE);
- hints.add(VisitHint.SKIP_UNRENDERED);
- VisitContext visitCtx = getVisitContextFactory().getVisitContext(_facesContext, executeIds, hints);
+
+ VisitContext visitCtx = getVisitContextFactory().getVisitContext(_facesContext, executeIds,
+ PARTIAL_EXECUTE_HINTS);
viewRoot.visitTree(visitCtx, new PhaseAwareVisitCallback(_facesContext, phaseId));
}
@@ -462,10 +469,6 @@ public class PartialViewContextImpl exte
//Only apply partial visit if we have ids to traverse
if (renderIds != null && !renderIds.isEmpty())
{
- Set<VisitHint> hints = new HashSet<VisitHint>();
- // unrendered have to be skipped, transient definitely must be added to our list!
- hints.add(VisitHint.SKIP_UNRENDERED);
-
// render=@all, so output the body.
if (renderIds.contains(PartialResponseWriter.RENDER_ALL_MARKER))
{
@@ -511,7 +514,7 @@ public class PartialViewContextImpl exte
}
VisitContext visitCtx = getVisitContextFactory().getVisitContext(
- _facesContext, renderIds, hints);
+ _facesContext, renderIds, PARTIAL_RENDER_HINTS);
viewRoot.visitTree(visitCtx,
new PhaseAwareVisitCallback(_facesContext, phaseId, updatedComponents));
}
Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java?rev=1298110&r1=1298109&r2=1298110&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/lifecycle/DefaultRestoreViewSupport.java Wed Mar 7 20:57:51 2012
@@ -19,8 +19,10 @@
package org.apache.myfaces.lifecycle;
import java.net.MalformedURLException;
+import java.util.Collections;
import java.util.EnumSet;
import java.util.Map;
+import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -82,6 +84,9 @@ public class DefaultRestoreViewSupport i
private static final boolean CHECKED_VIEWID_CACHE_ENABLED_DEFAULT = true;
private static final String SKIP_ITERATION_HINT = "javax.faces.visit.SKIP_ITERATION";
+
+ private static final Set<VisitHint> VISIT_HINTS = Collections.unmodifiableSet(
+ EnumSet.of(VisitHint.SKIP_ITERATION));
private volatile ConcurrentLRUCache<String, Boolean> _checkedViewIdMap = null;
private Boolean _checkedViewIdCacheEnabled = null;
@@ -101,9 +106,8 @@ public class DefaultRestoreViewSupport i
{
facesContext.getAttributes().put(SKIP_ITERATION_HINT, Boolean.TRUE);
- EnumSet<VisitHint> visitHints = EnumSet.of(VisitHint.SKIP_ITERATION);
VisitContext visitContext = (VisitContext) getVisitContextFactory().
- getVisitContext(facesContext, null, visitHints);
+ getVisitContext(facesContext, null, VISIT_HINTS);
component.visitTree(visitContext, new RestoreStateCallback());
}
finally
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=1298110&r1=1298109&r2=1298110&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 Wed Mar 7 20:57:51 2012
@@ -21,6 +21,7 @@ package org.apache.myfaces.view.facelets
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.HashSet;
@@ -167,6 +168,9 @@ public class DefaultFaceletsStateManagem
private static final Object[] EMPTY_STATES = new Object[]{null, null};
+ private static final Set<VisitHint> VISIT_HINTS = Collections.unmodifiableSet(
+ EnumSet.of(VisitHint.SKIP_ITERATION));
+
private ViewDeclarationLanguageFactory _vdlFactory;
private RenderKitFactory _renderKitFactory = null;
@@ -716,9 +720,8 @@ public class DefaultFaceletsStateManagem
facesContext.getAttributes().put(SKIP_ITERATION_HINT, Boolean.TRUE);
try
{
- EnumSet<VisitHint> visitHints = EnumSet.of(VisitHint.SKIP_ITERATION);
uiViewRoot.visitTree( getVisitContextFactory().getVisitContext(
- facesContext, null, visitHints), new VisitCallback()
+ facesContext, null, VISIT_HINTS), new VisitCallback()
{
public VisitResult visit(VisitContext context, UIComponent target)
{