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)
                 {