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/08/17 14:05:11 UTC
svn commit: r986284 - in
/myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el:
DefaultELHelper.java ExtValELResolver.java
Author: gpetracek
Date: Tue Aug 17 12:05:10 2010
New Revision: 986284
URL: http://svn.apache.org/viewvc?rev=986284&view=rev
Log:
EXTVAL-113
Modified:
myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java
myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.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=986284&r1=986283&r2=986284&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 Tue Aug 17 12:05:10 2010
@@ -18,6 +18,7 @@
*/
package org.apache.myfaces.extensions.validator.core.el;
+import org.apache.myfaces.extensions.validator.core.JsfProjectStage;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -58,6 +59,8 @@ public class DefaultELHelper implements
protected final Logger logger = Logger.getLogger(getClass().getName());
+ protected final boolean projectStageDevelopment = JsfProjectStage.is(JsfProjectStage.Development);
+
public DefaultELHelper()
{
logger.fine(getClass().getName() + " instantiated");
@@ -157,21 +160,21 @@ public class DefaultELHelper implements
return null;
}
- ExtValELResolver elResolver = createWrappedELContext(facesContext);
+ ExtValELResolver elResolver = createExtValELResolver(facesContext);
inspectTarget(valueExpression,
ExtValELResolver.createContextWrapper(facesContext.getELContext(), elResolver), false);
ExtValELResolver compositeComponentELResolver = null;
//see EXTVAL-102
- if (elResolver.getBaseObject() instanceof CompositeComponentExpressionHolder)
+ while(elResolver.getBaseObject() instanceof CompositeComponentExpressionHolder)
{
ValueExpression newValueExpression = ((CompositeComponentExpressionHolder) elResolver.getBaseObject())
.getExpression(elResolver.getProperty());
if (newValueExpression != null)
{
- elResolver = createWrappedELContext(facesContext);
+ elResolver = createExtValELResolver(facesContext);
inspectTarget(newValueExpression,
ExtValELResolver.createContextWrapper(
facesContext.getELContext(), elResolver), false);
@@ -183,7 +186,7 @@ public class DefaultELHelper implements
{
ValueExpression compositeExpression = elResolver.getCompositeComponentExpression();
- compositeComponentELResolver = createWrappedELContext(facesContext);
+ compositeComponentELResolver = createExtValELResolver(facesContext);
inspectTarget(compositeExpression,
ExtValELResolver.createContextWrapper(
facesContext.getELContext(), compositeComponentELResolver), true);
@@ -225,9 +228,9 @@ public class DefaultELHelper implements
}
}
- private ExtValELResolver createWrappedELContext(FacesContext facesContext)
+ private ExtValELResolver createExtValELResolver(FacesContext facesContext)
{
- return new ExtValELResolver(facesContext.getApplication().getELResolver());
+ return new ExtValELResolver(facesContext.getApplication().getELResolver(), this.projectStageDevelopment);
}
//keep in sync with DefaultELHelper#getPropertyDetailsOfValueBinding of branch!!!
Modified: myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.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/ExtValELResolver.java?rev=986284&r1=986283&r2=986284&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_2_0/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java Tue Aug 17 12:05:10 2010
@@ -44,6 +44,9 @@ public class ExtValELResolver extends EL
protected final Logger logger = Logger.getLogger(getClass().getName());
private ELResolver wrapped;
+
+ private boolean projectStageDevelopment;
+
private Object baseObject;
private String property;
//forms the id for cross-validation within complex components
@@ -52,9 +55,10 @@ public class ExtValELResolver extends EL
private CompositeComponentExpressionHolder compositeComponentExpressionHolder;
private String compositeComponentExpressionBase;
- public ExtValELResolver(ELResolver elResolver)
+ public ExtValELResolver(ELResolver elResolver, boolean projectStageDevelopment)
{
this.wrapped = elResolver;
+ this.projectStageDevelopment = projectStageDevelopment;
}
public Object getBaseObject()
@@ -192,7 +196,16 @@ public class ExtValELResolver extends EL
public void setValue(ELContext elContext, Object o, Object o1, Object o2)
{
expression += "." + o1;
- property = (String)o1;
+
+ if(o1 instanceof String)
+ {
+ property = (String)o1;
+ }
+ else
+ {
+ logWarningForUnsupportedExpression(o1);
+ }
+
baseObject = o;
elContext.setPropertyResolved(true);
}
@@ -278,4 +291,19 @@ public class ExtValELResolver extends EL
}
return null;
}
+
+ private void logWarningForUnsupportedExpression(Object o1)
+ {
+ if(this.projectStageDevelopment)
+ {
+ try
+ {
+ this.logger.warning(o1 + " is not a valid property for constraint based validation.");
+ }
+ catch (NullPointerException e)
+ {
+ this.logger.warning("A property which doesn't support constraint based validation has been detected.");
+ }
+ }
+ }
}