You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by gp...@apache.org on 2010/06/30 08:31:39 UTC

svn commit: r959211 - /myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java

Author: gpetracek
Date: Wed Jun 30 06:31:38 2010
New Revision: 959211

URL: http://svn.apache.org/viewvc?rev=959211&view=rev
Log:
EXTVAL-102 first draft

Modified:
    myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java

Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java?rev=959211&r1=959210&r2=959211&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java Wed Jun 30 06:31:38 2010
@@ -32,6 +32,7 @@ import javax.el.ELContext;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.el.ValueBinding;
+import javax.faces.el.CompositeComponentExpressionHolder;
 import java.io.Externalizable;
 import java.lang.reflect.Method;
 import java.util.Map;
@@ -140,7 +141,6 @@ public class DefaultELHelper implements 
         return new ValueBindingExpression(valueBindingExpression);
     }
 
-    @ToDo(value = Priority.HIGH, description = "check if it works with nested composite components")
     public PropertyDetails getPropertyDetailsOfValueBinding(UIComponent uiComponent)
     {
         if("true".equalsIgnoreCase(DEACTIVATE_EL_RESOLVER))
@@ -163,6 +163,21 @@ public class DefaultELHelper implements 
 
         ExtValELResolver compositeComponentELResolver = null;
 
+        //see EXTVAL-102
+        if (elResolver.getBaseObject() instanceof CompositeComponentExpressionHolder)
+        {
+            ValueExpression newValueExpression = ((CompositeComponentExpressionHolder) elResolver.getBaseObject())
+                    .getExpression(elResolver.getProperty());
+
+            if (newValueExpression != null)
+            {
+                elResolver = createWrappedELContext(facesContext);
+                inspectTarget(newValueExpression,
+                        ExtValELResolver.createContextWrapper(
+                                facesContext.getELContext(), elResolver), false);
+            }
+        }
+
         //re-check to get full key for cross-validation
         if (elResolver.getCompositeComponentExpression() != null)
         {