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 04:47:10 UTC

svn commit: r1294013 - in /myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets: BehaviorHandler.java ConverterHandler.java ValidatorHandler.java

Author: lu4242
Date: Mon Feb 27 03:47:10 2012
New Revision: 1294013

URL: http://svn.apache.org/viewvc?rev=1294013&view=rev
Log:
MYFACES-3481 [perf] f:validateBean re-creates facelets handlers (MetaRulesetImpl,DelegatingMetaTagHandler ...) for children every time

Modified:
    myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java
    myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java
    myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java

Modified: myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java?rev=1294013&r1=1294012&r2=1294013&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java (original)
+++ myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/BehaviorHandler.java Mon Feb 27 03:47:10 2012
@@ -33,6 +33,7 @@ public class BehaviorHandler extends Fac
 {
     private String behaviorId;
     private TagAttribute event;
+    private TagHandlerDelegate helper;
     
     /**
      * @param config
@@ -57,7 +58,8 @@ public class BehaviorHandler extends Fac
 
     public String getEventName ()
     {
-        if (event == null) {
+        if (event == null)
+        {
             return null;
         }
         
@@ -70,6 +72,13 @@ public class BehaviorHandler extends Fac
     @Override
     protected TagHandlerDelegate getTagHandlerDelegate()
     {
-        return delegateFactory.createBehaviorHandlerDelegate (this);
+        if (helper == null)
+        {
+            // Spec seems to indicate that the helper is created here, as opposed to other Handler
+            // instances, where it's presumably a new instance for every getter call.
+            
+            this.helper = delegateFactory.createBehaviorHandlerDelegate (this);
+        }
+        return helper;
     }
 }

Modified: myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java?rev=1294013&r1=1294012&r2=1294013&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java (original)
+++ myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ConverterHandler.java Mon Feb 27 03:47:10 2012
@@ -38,6 +38,7 @@ import org.apache.myfaces.buildtools.mav
 public class ConverterHandler extends FaceletsAttachedObjectHandler implements ValueHolderAttachedObjectHandler
 {
     private String converterId;
+    private TagHandlerDelegate helper;
     
     public ConverterHandler(ConverterConfig config)
     {
@@ -53,6 +54,13 @@ public class ConverterHandler extends Fa
     
     protected TagHandlerDelegate getTagHandlerDelegate()
     {
-        return delegateFactory.createConverterHandlerDelegate (this);
+        if (helper == null)
+        {
+            // Spec seems to indicate that the helper is created here, as opposed to other Handler
+            // instances, where it's presumably a new instance for every getter call.
+            
+            this.helper = delegateFactory.createConverterHandlerDelegate (this);
+        }
+        return helper;
     }
 }

Modified: myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java
URL: http://svn.apache.org/viewvc/myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java?rev=1294013&r1=1294012&r2=1294013&view=diff
==============================================================================
--- myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java (original)
+++ myfaces/core/branches/2.0.x/api/src/main/java/javax/faces/view/facelets/ValidatorHandler.java Mon Feb 27 03:47:10 2012
@@ -19,7 +19,6 @@
 package javax.faces.view.facelets;
 
 import javax.faces.view.EditableValueHolderAttachedObjectHandler;
-import javax.faces.view.facelets.FaceletContext;
 
 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
 
@@ -36,6 +35,7 @@ import org.apache.myfaces.buildtools.mav
 public class ValidatorHandler extends FaceletsAttachedObjectHandler implements EditableValueHolderAttachedObjectHandler
 {
     private ValidatorConfig config;
+    private TagHandlerDelegate helper;
     
     public ValidatorHandler(ValidatorConfig config)
     {
@@ -56,6 +56,13 @@ public class ValidatorHandler extends Fa
 
     protected TagHandlerDelegate getTagHandlerDelegate()
     {
-        return delegateFactory.createValidatorHandlerDelegate (this);
+        if (helper == null)
+        {
+            // Spec seems to indicate that the helper is created here, as opposed to other Handler
+            // instances, where it's presumably a new instance for every getter call.
+            
+            this.helper = delegateFactory.createValidatorHandlerDelegate (this);
+        }
+        return helper;
     }
 }