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/02/27 05:06:47 UTC

svn commit: r1294020 - in /myfaces/core/trunk: impl/src/main/java/org/apache/myfaces/view/facelets/ impl/src/main/java/org/apache/myfaces/view/facelets/impl/ shared/src/main/java/org/apache/myfaces/shared/renderkit/html/

Author: lu4242
Date: Mon Feb 27 04:06:47 2012
New Revision: 1294020

URL: http://svn.apache.org/viewvc?rev=1294020&view=rev
Log:
MYFACES-3468 [PERF] Avoid unnecessary _ComponentFacetMap instances (Thanks to Martin Koci for provide this patch)

Modified:
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/DefaultFaceletsStateManagementStrategy.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java
    myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java
    myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java

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=1294020&r1=1294019&r2=1294020&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 Mon Feb 27 04:06:47 2012
@@ -612,10 +612,9 @@ public class DefaultFaceletsStateManagem
             }
     
             //Scan facets
-            Map<String, UIComponent> facetMap = component.getFacets();
-            if (!facetMap.isEmpty())
+            if (component.getFacetCount() > 0)
             {
-                //String currentClientId = component.getClientId();
+                Map<String, UIComponent> facetMap = component.getFacets();
                 
                 for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
                 {
@@ -767,12 +766,15 @@ public class DefaultFaceletsStateManagem
                         else
                         {
                             String facetName = null;
-                            for (Map.Entry<String, UIComponent> entry : target.getParent().getFacets().entrySet()) 
+                            if (target.getParent().getFacetCount() > 0)
                             {
-                                if (target.equals(entry.getValue()))
+                                for (Map.Entry<String, UIComponent> entry : target.getParent().getFacets().entrySet()) 
                                 {
-                                    facetName = entry.getKey();
-                                    break;
+                                    if (target.equals(entry.getValue()))
+                                    {
+                                        facetName = entry.getKey();
+                                        break;
+                                    }
                                 }
                             }
                             states.put(target.getClientId(facesContext),new AttachedFullStateWrapper(new Object[]{
@@ -876,9 +878,10 @@ public class DefaultFaceletsStateManagem
             }
     
             //Scan facets
-            Map<String, UIComponent> facetMap = component.getFacets();
-            if (!facetMap.isEmpty())
+            
+            if (component.getFacetCount() > 0)
             {
+                Map<String, UIComponent> facetMap = component.getFacets();
                 String currentClientId = component.getClientId();
                 
                 for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
@@ -1139,9 +1142,10 @@ public class DefaultFaceletsStateManagem
         }
 
         //facets
-        Map<String, UIComponent> facetMap = component.getFacets();
-        if (!facetMap.isEmpty())
+        
+        if (component.getFacetCount() > 0)
         {
+            Map<String, UIComponent> facetMap = component.getFacets();
             List<Object[]> structFacetList = new ArrayList<Object[]>();
             for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
             {

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java?rev=1294020&r1=1294019&r2=1294020&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.java Mon Feb 27 04:06:47 2012
@@ -563,17 +563,15 @@ public class FaceletViewDeclarationLangu
         if (view.getFacetCount() > 0)
         {
             Map<String, UIComponent> facetMap = view.getFacets();
-            if (!facetMap.isEmpty())
+            for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
             {
-                for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
+                UIComponent child = entry.getValue();
+                if (!child.isTransient())
                 {
-                    UIComponent child = entry.getValue();
-                    if (!child.isTransient())
-                    {
-                        _markInitialState(child);
-                    }
+                    _markInitialState(child);
                 }
             }
+
         }
     }
 
@@ -596,17 +594,15 @@ public class FaceletViewDeclarationLangu
         if (component.getFacetCount() > 0)
         {
             Map<String, UIComponent> facetMap = component.getFacets();
-            if (!facetMap.isEmpty())
+            for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
             {
-                for (Map.Entry<String, UIComponent> entry : facetMap.entrySet())
+                UIComponent child = entry.getValue();
+                if (!child.isTransient())
                 {
-                    UIComponent child = entry.getValue();
-                    if (!child.isTransient())
-                    {
-                        _markInitialState(child);
-                    }
+                    _markInitialState(child);
                 }
             }
+
         }
     }
 
@@ -872,7 +868,7 @@ public class FaceletViewDeclarationLangu
             // In the spec javadoc this variable is referred as forAttributeValue, but
             // note it is also called curTargetName
             String forValue = currentHandler.getFor();
-
+            
             for (AttachedObjectTarget currentTarget : targetList)
             {
                 FaceletCompositionContext mctx = FaceletCompositionContext.getCurrentInstance();

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java?rev=1294020&r1=1294019&r2=1294020&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/DefaultFacelet.java Mon Feb 27 04:06:47 2012
@@ -203,7 +203,7 @@ final class DefaultFacelet extends Abstr
             }
 
             // remove any facets marked as deleted
-            if (c.getFacets().size() > 0)
+            if (c.getFacetCount() > 0)
             {
                 Collection<UIComponent> col = c.getFacets().values();
                 UIComponent fc;

Modified: myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java?rev=1294020&r1=1294019&r2=1294020&view=diff
==============================================================================
--- myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java (original)
+++ myfaces/core/trunk/impl/src/main/java/org/apache/myfaces/view/facelets/impl/FaceletCompositionContextImpl.java Mon Feb 27 04:06:47 2012
@@ -625,13 +625,11 @@ public class FaceletCompositionContextIm
         id = (id == null) ? VIEWROOT_FACELET_ID : id;
         markComponentForDeletion(id, component);
         
-        Map<String, UIComponent> facets = component.getFacets();
-        if (!facets.isEmpty())
+        
+        if (component.getFacetCount() > 0)
         {
-            for (Iterator<UIComponent> itr = facets.values().iterator(); itr.hasNext();)
+            for (UIComponent fc: component.getFacets().values())
             {
-                UIComponent fc = itr.next();
-
                 id = (String) fc.getAttributes().get(ComponentSupport.MARK_CREATED);
                 if (id != null)
                 {
@@ -697,9 +695,10 @@ public class FaceletCompositionContextIm
         }
 
         // remove any facets marked as deleted
-        Map<String, UIComponent> facets = component.getFacets();
-        if (!facets.isEmpty())
+        
+        if (component.getFacetCount() > 0)
         {
+            Map<String, UIComponent> facets = component.getFacets();
             for (Iterator<UIComponent> itr = facets.values().iterator(); itr.hasNext();)
             {
                 UIComponent fc = itr.next();

Modified: myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java
URL: http://svn.apache.org/viewvc/myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java?rev=1294020&r1=1294019&r2=1294020&view=diff
==============================================================================
--- myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java (original)
+++ myfaces/core/trunk/shared/src/main/java/org/apache/myfaces/shared/renderkit/html/HtmlTableRendererBase.java Mon Feb 27 04:06:47 2012
@@ -819,9 +819,13 @@ public class HtmlTableRendererBase exten
             }
         }
 
-
-        UIComponent facet = header ? (UIComponent) component.getFacets().get(HEADER_FACET_NAME)
-                : (UIComponent) component.getFacets().get(FOOTER_FACET_NAME);
+        
+        UIComponent facet = null;
+        if (component.getFacetCount() > 0)
+        {
+            facet = header ? (UIComponent) component.getFacets().get(HEADER_FACET_NAME) 
+                    : (UIComponent) component.getFacets().get(FOOTER_FACET_NAME);
+        }
         if (facet != null || hasColumnFacet)
         {
             // Header or Footer present on either the UIData or a column, so we