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 2008/11/24 01:40:58 UTC
svn commit: r720077 - in /myfaces/extensions/validator/trunk:
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/
core/src/main/java/org/apache/myfaces/extensions/validator/core/valid...
Author: gpetracek
Date: Sun Nov 23 16:40:57 2008
New Revision: 720077
URL: http://svn.apache.org/viewvc?rev=720077&view=rev
Log:
initCrossValidation, processAfterCrossValidatorException, RequiredIfStrategy: join default required message, new messages
Added:
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_de.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_en.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_de.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_en.properties
Modified:
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/JsfUtils.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ar.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ca.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_es.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_fr.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_it.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_tr.properties
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java
Modified: myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/LengthInitializer.java Sun Nov 23 16:40:57 2008
@@ -67,9 +67,13 @@
{
if(processComponent(uiComponent))
{
- ReflectionUtils
- .tryToInvokeMethodOfClassAndMethodName(uiComponent.getClass().getName(), "setMaximumLength",
- new Object[] {maxLength}, new Class[] {int.class});
+ ReflectionUtils.tryToInvokeMethod(
+ uiComponent,
+ ReflectionUtils.tryToGetMethod(
+ uiComponent.getClass(),
+ "setMaximumLength",
+ int.class),
+ maxLength);
}
lengthValidator.setMaximum((Integer)maxLength);
informationAdded = true;
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java Sun Nov 23 16:40:57 2008
@@ -32,7 +32,6 @@
import java.lang.annotation.Annotation;
import java.util.Locale;
import java.util.MissingResourceException;
-import java.util.ResourceBundle;
/**
* Provides the ability of message resolving to ValidationStrategies
@@ -90,19 +89,6 @@
this.messageResolver = messageResolver;
}
- protected ResourceBundle getDefaultFacesMessageBundle()
- {
- FacesContext facesContext = FacesContext.getCurrentInstance();
- String bundleName = facesContext.getApplication().getMessageBundle();
-
- if(bundleName == null)
- {
- bundleName = FacesMessage.FACES_MESSAGES;
- }
-
- return ResourceBundle.getBundle(bundleName, facesContext.getViewRoot().getLocale());
- }
-
@Override
protected boolean processAfterValidatorException(FacesContext facesContext,
UIComponent uiComponent,
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java Sun Nov 23 16:40:57 2008
@@ -42,6 +42,7 @@
import javax.faces.validator.ValidatorException;
import javax.faces.application.FacesMessage;
import java.util.Map;
+import java.util.MissingResourceException;
/**
@@ -51,6 +52,12 @@
@UsageInformation(UsageCategory.INTERNAL)
public class ExtValUtils
{
+ private static final String JAVAX_FACES_REQUIRED = "javax.faces.component.UIInput.REQUIRED";
+ private static final String JAVAX_FACES_REQUIRED_DETAIL = "javax.faces.component.UIInput.REQUIRED_detail";
+
+ private static final String JAVAX_FACES_MAXIMUM = "javax.faces.validator.LengthValidator.MAXIMUM";
+ private static final String JAVAX_FACES_MAXIMUM_DETAIL = "javax.faces.validator.LengthValidator.MAXIMUM_detail";
+
public static ValidationStrategy getValidationStrategyForMetaData(String metaDataKey)
{
return ((ClassMappingFactory<Object, ValidationStrategy>) ExtValContext.getContext()
@@ -149,4 +156,55 @@
facesMessage.setDetail(facesMessage.getDetail().replace("{" + index + "}", label));
}
}
+
+ @UsageInformation(UsageCategory.INTERNAL)
+ public static void replaceWithDefaultMaximumMessage(FacesMessage facesMessage, int maxLength)
+ {
+ String facesRequiredMessage = JsfUtils.getDefaultFacesMessageBundle().getString(JAVAX_FACES_MAXIMUM);
+ String facesRequiredMessageDetail = facesRequiredMessage;
+
+ //use try/catch for easier sync between trunk/branch
+ try
+ {
+ if(JsfUtils.getDefaultFacesMessageBundle().getString(JAVAX_FACES_MAXIMUM_DETAIL) != null)
+ {
+ facesRequiredMessageDetail = JsfUtils
+ .getDefaultFacesMessageBundle().getString(JAVAX_FACES_MAXIMUM_DETAIL);
+ }
+ }
+ catch (MissingResourceException missingResourceException)
+ {
+ //jsf 1.2 doesn't have a detail message
+ }
+
+ facesRequiredMessage = facesRequiredMessage.replace("{0}", "" + maxLength);
+ facesRequiredMessageDetail = facesRequiredMessageDetail.replace("{0}", "" + maxLength);
+
+ facesMessage.setSummary(facesRequiredMessage);
+ facesMessage.setDetail(facesRequiredMessageDetail);
+ }
+
+ @UsageInformation(UsageCategory.INTERNAL)
+ public static void replaceWithDefaultRequiredMessage(FacesMessage facesMessage)
+ {
+ String facesRequiredMessage = JsfUtils.getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED);
+ String facesRequiredMessageDetail = facesRequiredMessage;
+
+ //use try/catch for easier sync between trunk/branch
+ try
+ {
+ if(JsfUtils.getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED_DETAIL) != null)
+ {
+ facesRequiredMessageDetail = JsfUtils
+ .getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED_DETAIL);
+ }
+ }
+ catch (MissingResourceException missingResourceException)
+ {
+ //jsf 1.2 doesn't have a detail message
+ }
+
+ facesMessage.setSummary(facesRequiredMessage);
+ facesMessage.setDetail(facesRequiredMessageDetail);
+ }
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/JsfUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/JsfUtils.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/JsfUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/JsfUtils.java Sun Nov 23 16:40:57 2008
@@ -22,10 +22,13 @@
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import javax.faces.FactoryFinder;
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
import javax.faces.event.PhaseListener;
import javax.faces.lifecycle.Lifecycle;
import javax.faces.lifecycle.LifecycleFactory;
import java.util.Iterator;
+import java.util.ResourceBundle;
/**
@@ -49,4 +52,17 @@
currentLifecycle.removePhaseListener(phaseListener);
}
}
+
+ public static ResourceBundle getDefaultFacesMessageBundle()
+ {
+ FacesContext facesContext = FacesContext.getCurrentInstance();
+ String bundleName = facesContext.getApplication().getMessageBundle();
+
+ if(bundleName == null)
+ {
+ bundleName = FacesMessage.FACES_MESSAGES;
+ }
+
+ return ResourceBundle.getBundle(bundleName, facesContext.getViewRoot().getLocale());
+ }
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java Sun Nov 23 16:40:57 2008
@@ -37,7 +37,7 @@
return tryToGetMethod(targetClass, targetMethodName, null);
}
- public static Method tryToGetMethod(Class targetClass, String targetMethodName, Class[] parameterTypes)
+ public static Method tryToGetMethod(Class targetClass, String targetMethodName, Class... parameterTypes)
{
try
{
@@ -56,10 +56,53 @@
return getMethod(targetClass, targetMethodName, null);
}
- public static Method getMethod(Class targetClass, String targetMethodName, Class[] parameterTypes)
+ public static Method getMethod(Class targetClass, String targetMethodName, Class... parameterTypes)
throws NoSuchMethodException
{
- return targetClass.getMethod(targetMethodName, parameterTypes);
+ Class currentClass = targetClass;
+ Method targetMethod = null;
+
+ while (!Object.class.getName().equals(currentClass.getName()))
+ {
+ try
+ {
+ targetMethod = currentClass.getDeclaredMethod(targetMethodName, parameterTypes);
+ break;
+ }
+ catch (NoSuchMethodException e)
+ {
+ currentClass = currentClass.getSuperclass();
+ }
+ }
+
+ if(targetMethod == null)
+ {
+ for (Class currentInterface : targetClass.getInterfaces())
+ {
+ currentClass = currentInterface;
+
+ while (currentClass != null)
+ {
+ try
+ {
+ targetMethod = currentClass.getDeclaredMethod(targetMethodName, parameterTypes);
+ break;
+ }
+ catch (NoSuchMethodException e)
+ {
+ currentClass = currentClass.getSuperclass();
+ }
+ }
+ }
+ }
+
+ if(targetMethod != null)
+ {
+ return targetMethod;
+ }
+
+ throw new NoSuchMethodException("there is no method with the name '" + targetMethodName + "'" +
+ " class: " + targetClass.getName());
}
public static Object tryToInvokeMethod(Object target, Method method)
@@ -72,36 +115,6 @@
return tryToInvokeMethodOfClass(target, method, null);
}
- public static Object tryToInvokeMethodOfClassAndMethodName(String className, String methodName)
- {
- return tryToInvokeMethodOfClassAndMethodName(className, methodName, null);
- }
-
- public static Object tryToInvokeMethodOfClassAndMethodName(String className, String methodName, Object[] args)
- {
- Class[] targetArgs = new Class[0];
-
- if(args != null)
- {
- targetArgs = new Class[args.length];
-
- for(int i = 0; i < args.length; i++)
- {
- targetArgs[i] = args[i].getClass();
- }
- }
-
- return tryToInvokeMethodOfClassAndMethodName(className, methodName, args, targetArgs);
- }
-
- public static Object tryToInvokeMethodOfClassAndMethodName(String className, String methodName,
- Object[] args, Class[] argTypes)
- {
- Class targetClass = ClassUtils.tryToLoadClassForName(className);
- Method targetMethod = tryToGetMethod(targetClass, methodName, argTypes);
- return tryToInvokeMethodOfClass(targetClass, targetMethod, args);
- }
-
public static Object tryToInvokeMethodOfClass(Class target, Method method, Object[] args)
{
try
@@ -121,17 +134,17 @@
return invokeMethod(target.newInstance(), method, null);
}
- public static Object invokeMethodOfClass(Class target, Method method, Object[] args)
+ public static Object invokeMethodOfClass(Class target, Method method, Object... args)
throws IllegalAccessException, InstantiationException, InvocationTargetException
{
return invokeMethod(target.newInstance(), method, args);
}
- public static Object tryToInvokeMethod(Object target, Method method, Object[] args)
+ public static Object tryToInvokeMethod(Object target, Method method, Object... args)
{
try
{
- return method.invoke(target, args);
+ return invokeMethod(target, method, args);
}
catch (Throwable t)
{
@@ -146,9 +159,10 @@
return invokeMethod(target, method, null);
}
- public static Object invokeMethod(Object target, Method method, Object[] args)
+ public static Object invokeMethod(Object target, Method method, Object... args)
throws InvocationTargetException, IllegalAccessException
{
+ method.setAccessible(true);
return method.invoke(target, args);
}
Added: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_de.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_de.properties?rev=720077&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_de.properties (added)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_de.properties Sun Nov 23 16:40:57 2008
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+no_match=Ungültiges Format
+no_match_detail=Das erforderliche Format ist: {0}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_en.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_en.properties?rev=720077&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_en.properties (added)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/message/bundle/validation_messages_en.properties Sun Nov 23 16:40:57 2008
@@ -0,0 +1,19 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+no_match=Invalid format
+no_match_detail=The required formate is: {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java Sun Nov 23 16:40:57 2008
@@ -26,6 +26,7 @@
import org.apache.myfaces.extensions.validator.internal.ToDo;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -37,7 +38,6 @@
import javax.persistence.OneToOne;
import javax.persistence.Id;
import java.lang.annotation.Annotation;
-import java.util.MissingResourceException;
/**
* @author Gerhard Petracek
@@ -47,11 +47,6 @@
public class JpaValidationStrategy extends AbstractAnnotationValidationStrategy
{
private boolean useFacesBundle = false;
- private static final String JAVAX_FACES_REQUIRED = "javax.faces.component.UIInput.REQUIRED";
- private static final String JAVAX_FACES_REQUIRED_DETAIL = "javax.faces.component.UIInput.REQUIRED_detail";
- private static final String JAVAX_FACES_MAXIMUM = "javax.faces.validator.LengthValidator.MAXIMUM";
- private static final String JAVAX_FACES_MAXIMUM_DETAIL = "javax.faces.validator.LengthValidator.MAXIMUM_detail";
-
private static final String VALIDATE_LENGTH = "length";
private String violation;
@@ -191,53 +186,14 @@
if(this.useFacesBundle)
{
- String facesRequiredMessage;
- String facesRequiredMessageDetail;
-
if(VALIDATE_LENGTH.equals(this.violation))
{
- facesRequiredMessage = getDefaultFacesMessageBundle().getString(JAVAX_FACES_MAXIMUM);
- facesRequiredMessageDetail = facesRequiredMessage;
-
- //use try/catch for easier sync between trunk/branch
- try
- {
- if(getDefaultFacesMessageBundle().getString(JAVAX_FACES_MAXIMUM_DETAIL) != null)
- {
- facesRequiredMessageDetail = getDefaultFacesMessageBundle()
- .getString(JAVAX_FACES_MAXIMUM_DETAIL);
- }
- }
- catch (MissingResourceException missingResourceException)
- {
- //jsf 1.2 doesn't have a detail message
- }
-
- facesRequiredMessage = facesRequiredMessage.replace("{0}", "" + this.maxLength);
- facesRequiredMessageDetail = facesRequiredMessageDetail.replace("{0}", "" + this.maxLength);
+ ExtValUtils.replaceWithDefaultMaximumMessage(facesMessage, this.maxLength);
}
else
{
- facesRequiredMessage = getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED);
- facesRequiredMessageDetail = facesRequiredMessage;
-
- //use try/catch for easier sync between trunk/branch
- try
- {
- if(getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED_DETAIL) != null)
- {
- facesRequiredMessageDetail = getDefaultFacesMessageBundle()
- .getString(JAVAX_FACES_REQUIRED_DETAIL);
- }
- }
- catch (MissingResourceException missingResourceException)
- {
- //jsf 1.2 doesn't have a detail message
- }
+ ExtValUtils.replaceWithDefaultRequiredMessage(facesMessage);
}
-
- facesMessage.setSummary(facesRequiredMessage);
- facesMessage.setDetail(facesRequiredMessageDetail);
}
return super.processAfterValidatorException(facesContext, uiComponent, metaDataEntry, convertedObject, e);
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java Sun Nov 23 16:40:57 2008
@@ -25,15 +25,14 @@
import org.apache.myfaces.extensions.validator.core.validation.message.resolver.AbstractValidationErrorMessageResolver;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.ValidatorException;
-import javax.faces.application.FacesMessage;
import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.Collection;
-import java.util.MissingResourceException;
/**
* @author Gerhard Petracek
@@ -44,8 +43,6 @@
public class RequiredStrategy extends AbstractAnnotationValidationStrategy
{
private boolean useFacesBundle = false;
- private static final String JAVAX_FACES_REQUIRED = "javax.faces.component.UIInput.REQUIRED";
- private static final String JAVAX_FACES_REQUIRED_DETAIL = "javax.faces.component.UIInput.REQUIRED_detail";
public void processValidation(FacesContext facesContext,
UIComponent uiComponent, MetaDataEntry metaDataEntry,
@@ -85,28 +82,9 @@
Object convertedObject,
ValidatorException e)
{
- FacesMessage facesMessage = e.getFacesMessage();
-
if(this.useFacesBundle)
{
- String facesRequiredMessage = getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED);
- String facesRequiredMessageDetail = facesRequiredMessage;
-
- //use try/catch for easier sync between trunk/branch
- try
- {
- if(getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED_DETAIL) != null)
- {
- facesRequiredMessageDetail = getDefaultFacesMessageBundle().getString(JAVAX_FACES_REQUIRED_DETAIL);
- }
- }
- catch (MissingResourceException missingResourceException)
- {
- //jsf 1.2 doesn't have a detail message
- }
-
- facesMessage.setSummary(facesRequiredMessage);
- facesMessage.setDetail(facesRequiredMessageDetail);
+ ExtValUtils.replaceWithDefaultRequiredMessage(e.getFacesMessage());
}
return super.processAfterValidatorException(facesContext, uiComponent, metaDataEntry, convertedObject, e);
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java Sun Nov 23 16:40:57 2008
@@ -20,15 +20,17 @@
import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
import org.apache.myfaces.extensions.validator.util.JsfUtils;
-import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.crossval.strategy.AbstractCrossValidationStrategy;
import javax.faces.application.FacesMessage;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
import javax.faces.validator.ValidatorException;
+import javax.faces.FacesException;
/**
* This phase listener processes cross validation as soon as it finds a special request scoped storage.<br/>
@@ -54,14 +56,46 @@
{
try
{
+ if(entry.getValidationStrategy() instanceof AbstractCrossValidationStrategy)
+ {
+ ReflectionUtils.tryToInvokeMethod(
+ entry.getValidationStrategy(),
+ ReflectionUtils.tryToGetMethod(
+ entry.getValidationStrategy().getClass(),
+ "initCrossValidation",
+ CrossValidationStorageEntry.class),
+ entry);
+ }
+
entry.getValidationStrategy().processCrossValidation(entry, crossValidationStorage);
}
- catch (ValidatorException e)
+ catch (ValidatorException validatorException)
{
- if(ExtValUtils.executeAfterThrowingInterceptors(
- entry.getComponent(), entry.getMetaDataEntry(), entry.getConvertedObject(), e))
+ boolean addMessage = true;
+
+ if(entry.getValidationStrategy() instanceof AbstractCrossValidationStrategy)
+ {
+ try
+ {
+ addMessage = (Boolean)ReflectionUtils.tryToInvokeMethod(
+ entry.getValidationStrategy(),
+ ReflectionUtils.tryToGetMethod(
+ entry.getValidationStrategy().getClass(),
+ "processAfterCrossValidatorException",
+ CrossValidationStorageEntry.class,
+ validatorException.getClass()),
+ entry,
+ validatorException);
+ }
+ catch (Throwable e)
+ {
+ throw new FacesException(e);
+ }
+ }
+
+ if(addMessage)
{
- FacesMessage facesMessage = e.getFacesMessage();
+ FacesMessage facesMessage = validatorException.getFacesMessage();
if (facesMessage != null &&
facesMessage.getSummary() != null && facesMessage.getDetail() != null)
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages.properties Sun Nov 23 16:40:57 2008
@@ -15,23 +15,20 @@
# specific language governing permissions and limitations
# under the License.
-duplicated_content_required=input is different
-duplicated_content_required_detail=input is different
+duplicated_content_required=Input is different
+duplicated_content_required_detail=Input is different
-duplicated_content_denied=same input isn't allowed
-duplicated_content_denied_detail=same input isn't allowed
+duplicated_content_denied=Same input isn't allowed
+duplicated_content_denied_detail=Same input isn't allowed
-wrong_date=wrong date
-wrong_date_detail=wrong date
+wrong_date=Wrong date
+wrong_date_detail=Wrong date
-wrong_date_not_before=date has to be after {0}
-wrong_date_not_before_detail=date has to be after {0}
+wrong_date_not_before=Date has to be after {0}
+wrong_date_not_before_detail=Date has to be after {0}
-wrong_date_not_after=date has to be before {0}
-wrong_date_not_after_detail=date has to be before {0}
+wrong_date_not_after=Date has to be before {0}
+wrong_date_not_after_detail=Date has to be before {0}
-wrong_date_not_equal=date isn't equal to {0}
-wrong_date_not_equal_detail=date isn't equal to {0}
-
-empty_field=field is required
-empty_field_detail=field is required
\ No newline at end of file
+wrong_date_not_equal=Date isn't equal to {0}
+wrong_date_not_equal_detail=Date isn't equal to {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ar.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ar.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ar.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ar.properties Sun Nov 23 16:40:57 2008
@@ -31,7 +31,4 @@
wrong_date_not_after_detail=\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u064a\u062c\u0628 \u0623\u0646 \u064a\u0643 \u0648\u0646 \u0642\u0628\u0644 {0}
wrong_date_not_equal=\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0644\u0627 \u064a\u0633\u0627\u0648\u0649 {0}
-wrong_date_not_equal_detail=\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0644\u0627 \u064a\u0633\u0627\u0648\u0649 {0}
-
-empty_field=\u0645\u0637\u0644\u0648\u0628 \u0625\u062f\u062e\u0627\u0644 \u0642\u064a\u0645\u0629 \u0644\u0647 \u0630\u0627 \u0627\u0644\u062d\u0642\u0644
-empty_field_detail=\u0645\u0637\u0644\u0648\u0628 \u0625\u062f\u062e\u0627\u0644 \u0642\u064a\u0645\u0629 \u0644\u0647 \u0630\u0627 \u0627\u0644\u062d\u0642\u0644
\ No newline at end of file
+wrong_date_not_equal_detail=\u0627\u0644\u062a\u0627\u0631\u064a\u062e \u0644\u0627 \u064a\u0633\u0627\u0648\u0649 {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ca.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ca.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ca.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_ca.properties Sun Nov 23 16:40:57 2008
@@ -31,7 +31,4 @@
wrong_date_not_after_detail=la data ha de ser posterior a {0}
wrong_date_not_equal=la data no \u000e9s igual a {0}
-wrong_date_not_equal_detail=la data no \u000e9s igual a {0}
-
-empty_field=data requerida
-empty_field_detail=data requerida
\ No newline at end of file
+wrong_date_not_equal_detail=la data no \u000e9s igual a {0}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_de.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_de.properties?rev=720077&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_de.properties (added)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_de.properties Sun Nov 23 16:40:57 2008
@@ -0,0 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+duplicated_content_required=Input is different
+duplicated_content_required_detail=Input is different
+
+duplicated_content_denied=Same input isn't allowed
+duplicated_content_denied_detail=Same input isn't allowed
+
+wrong_date=Wrong date
+wrong_date_detail=Wrong date
+
+wrong_date_not_before=Date has to be after {0}
+wrong_date_not_before_detail=Date has to be after {0}
+
+wrong_date_not_after=Date has to be before {0}
+wrong_date_not_after_detail=Date has to be before {0}
+
+wrong_date_not_equal=Date isn't equal to {0}
+wrong_date_not_equal_detail=Date isn't equal to {0}
\ No newline at end of file
Added: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_en.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_en.properties?rev=720077&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_en.properties (added)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_en.properties Sun Nov 23 16:40:57 2008
@@ -0,0 +1,34 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+duplicated_content_required=Input is different
+duplicated_content_required_detail=Input is different
+
+duplicated_content_denied=Same input isn't allowed
+duplicated_content_denied_detail=Same input isn't allowed
+
+wrong_date=Wrong date
+wrong_date_detail=Wrong date
+
+wrong_date_not_before=Date has to be after {0}
+wrong_date_not_before_detail=Date has to be after {0}
+
+wrong_date_not_after=Date has to be before {0}
+wrong_date_not_after_detail=Date has to be before {0}
+
+wrong_date_not_equal=Date isn't equal to {0}
+wrong_date_not_equal_detail=Date isn't equal to {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_es.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_es.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_es.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_es.properties Sun Nov 23 16:40:57 2008
@@ -31,7 +31,4 @@
wrong_date_not_after_detail=la fecha tiene que ser antes de {0}
wrong_date_not_equal=la fecha no es igual a {0}
-wrong_date_not_equal_detail=la fecha no es igual a {0}
-
-empty_field=la fecha es requerida
-empty_field_detail=la fecha es requerida
\ No newline at end of file
+wrong_date_not_equal_detail=la fecha no es igual a {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_fr.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_fr.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_fr.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_fr.properties Sun Nov 23 16:40:57 2008
@@ -31,8 +31,4 @@
wrong_date_not_after_detail=La date doit être avant {0}
wrong_date_not_equal=La date n'est pas égale à {0}
-wrong_date_not_equal_detail=La date n'est pas égale à {0}
-
-empty_field=Le champ est requis
-empty_field_detail=Le champ est requis
-
+wrong_date_not_equal_detail=La date n'est pas égale à {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_it.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_it.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_it.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_it.properties Sun Nov 23 16:40:57 2008
@@ -31,7 +31,4 @@
wrong_date_not_after_detail=La data deve essere prima di {0}
wrong_date_not_equal=La data non è uguale a {0}
-wrong_date_not_equal_detail=La data non è uguale a {0}
-
-empty_field=Il campo è obbligatorio
-empty_field_detail=Il campo è obbligatorio
\ No newline at end of file
+wrong_date_not_equal_detail=La data non è uguale a {0}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_tr.properties
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_tr.properties?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_tr.properties (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/message/bundle/validation_messages_tr.properties Sun Nov 23 16:40:57 2008
@@ -32,7 +32,4 @@
wrong_date_not_after_detail=tarih {0} de\u011ferinden \u00f6nce olmal\u0131d\u0131r
wrong_date_not_equal=tarih {0} de\u011ferine e\u015fit de\u011fil
-wrong_date_not_equal_detail=tarih {0} de\u011ferine e\u015fit de\u011fil
-
-empty_field=alan zorunludur
-empty_field_detail=alan zorunludur
+wrong_date_not_equal_detail=tarih {0} de\u011ferine e\u015fit de\u011fil
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java Sun Nov 23 16:40:57 2008
@@ -22,6 +22,7 @@
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import org.apache.myfaces.extensions.validator.crossval.CrossValidationStorageEntry;
import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -75,7 +76,7 @@
@Override
protected final String getLabel(FacesContext facesContext, UIComponent uiComponent, MetaDataEntry metaDataEntry)
{
- throw new IllegalStateException("not available for cross validation");
+ throw new IllegalStateException("not available for cross validation - use processAfterCrossValidatorException");
}
@Override
@@ -84,6 +85,20 @@
MetaDataEntry metaDataEntry,
Object convertedObject)
{
- //not available for cross validation
+ //not available for cross validation - use initCrossValidation
+ }
+
+ protected void initCrossValidation(CrossValidationStorageEntry crossValidationStorageEntry)
+ {
+ //override if needed
+ }
+
+ //override if needed
+ protected boolean processAfterCrossValidatorException(CrossValidationStorageEntry crossValidationStorageEntry,
+ ValidatorException validatorException)
+ {
+ return ExtValUtils.executeAfterThrowingInterceptors(
+ crossValidationStorageEntry.getComponent(), crossValidationStorageEntry.getMetaDataEntry(),
+ crossValidationStorageEntry.getConvertedObject(), validatorException);
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java?rev=720077&r1=720076&r2=720077&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/RequiredIfStrategy.java Sun Nov 23 16:40:57 2008
@@ -24,7 +24,10 @@
import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.AbstractValidationErrorMessageResolver;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import javax.faces.validator.ValidatorException;
import java.lang.annotation.Annotation;
/**
@@ -35,11 +38,27 @@
@UsageInformation(UsageCategory.INTERNAL)
public class RequiredIfStrategy extends AbstractCompareStrategy
{
+ private boolean useFacesBundle = false;
+
public boolean useTargetComponentToDisplayErrorMsg(CrossValidationStorageEntry crossValidationStorageEntry)
{
return false;
}
+ @Override
+ protected String resolveMessage(String key)
+ {
+ String result = super.resolveMessage(key);
+ String marker = AbstractValidationErrorMessageResolver.MISSING_RESOURCE_MARKER;
+
+ if((marker + key + marker).equals(result))
+ {
+ this.useFacesBundle = true;
+ }
+
+ return result;
+ }
+
protected String getValidationErrorMsgKey(Annotation annotation, boolean isTargetComponent)
{
return ((RequiredIf) annotation).validationErrorMsgKey();
@@ -65,4 +84,16 @@
{
return ((RequiredIf) annotation).valueOf();
}
+
+ @Override
+ protected boolean processAfterCrossValidatorException(
+ CrossValidationStorageEntry crossValidationStorageEntry, ValidatorException validatorException)
+ {
+ if(this.useFacesBundle)
+ {
+ ExtValUtils.replaceWithDefaultRequiredMessage(validatorException.getFacesMessage());
+ }
+
+ return super.processAfterCrossValidatorException(crossValidationStorageEntry, validatorException);
+ }
}
\ No newline at end of file