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 2009/10/18 20:27:45 UTC
svn commit: r826485 - in
/myfaces/extensions/validator/branches/branch_for_jsf_1_1:
component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/startup/
component-support/trinidad-support/src/main/java/org/apache/myf...
Author: gpetracek
Date: Sun Oct 18 18:27:44 2009
New Revision: 826485
URL: http://svn.apache.org/viewvc?rev=826485&view=rev
Log:
cleanup and small refactorings
Added:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/RequiredValidatorException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/payload/
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/payload/DisableClientSideValidation.java
Modified:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/startup/GenericModuleStartupListener.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/validation/message/TrinidadViolationMessage.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/ValidationStrategyToMetaDataTransformerSubMapperAwareNameMapper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipAfterInterceptorsException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipBeforeInterceptorsException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipRendererDelegationException.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/components/user_form.xhtml
myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_02/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/NotNullMetaDataTransformer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/StringSizeMetaDataTransformer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/NotNullNameMapper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/SizeNameMapper.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/startup/GenericModuleStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/startup/GenericModuleStartupListener.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/startup/GenericModuleStartupListener.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/startup/GenericModuleStartupListener.java Sun Oct 18 18:27:44 2009
@@ -18,13 +18,13 @@
*/
package org.apache.myfaces.extensions.validator.generic.startup;
-import org.apache.myfaces.extensions.validator.core.startup.AbstractStartupListener;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
-import org.apache.myfaces.extensions.validator.core.renderkit.AbstractRenderKitWrapperFactory;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
+import org.apache.myfaces.extensions.validator.core.renderkit.AbstractRenderKitWrapperFactory;
+import org.apache.myfaces.extensions.validator.core.startup.AbstractStartupListener;
import org.apache.myfaces.extensions.validator.generic.renderkit.GenericRenderKitWrapperFactory;
-import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
/**
* @author Gerhard Petracek
@@ -33,6 +33,8 @@
@UsageInformation(UsageCategory.INTERNAL)
public class GenericModuleStartupListener extends AbstractStartupListener
{
+ private static final long serialVersionUID = 4392156032877519556L;
+
protected void init()
{
ExtValContext.getContext().getFactoryFinder().getFactory(FactoryNames.RENDERKIT_WRAPPER_FACTORY,
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java Sun Oct 18 18:27:44 2009
@@ -18,16 +18,17 @@
*/
package org.apache.myfaces.extensions.validator.trinidad.interceptor;
+import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.core.interceptor.MetaDataExtractionInterceptor;
-import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
-import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import java.lang.annotation.Annotation;
-import java.util.List;
import java.util.ArrayList;
+import java.util.List;
/**
* @author Gerhard Petracek
@@ -38,27 +39,30 @@
{
public void afterExtracting(PropertyInformation propertyInformation)
{
- List<MetaDataEntry> result = new ArrayList<MetaDataEntry>();
-
- for(MetaDataEntry entry : propertyInformation.getMetaDataEntries())
+ for (MetaDataEntry entry : propertyInformation.getMetaDataEntries())
{
- if(!(entry.getValue() instanceof Annotation &&
- ExtValUtils.getValidationParameterExtractor()
- .extract(entry.getValue(Annotation.class), DisableClientSideValidation.class)
- .iterator().hasNext()))
+ if (entry.getValue() instanceof Annotation && isClientValidationDisabled(entry))
{
- result.add(entry);
+ disableClientSideValidation(entry);
}
}
+ }
- if(propertyInformation.getMetaDataEntries().length != result.size())
- {
- propertyInformation.resetMetaDataEntries();
+ private boolean isClientValidationDisabled(MetaDataEntry entry)
+ {
+ return ExtValUtils.getValidationParameterExtractor()
+ .extract(entry.getValue(Annotation.class), DisableClientSideValidation.class)
+ .iterator().hasNext();
+ }
- for(MetaDataEntry entry : result)
- {
- propertyInformation.addMetaDataEntry(entry);
- }
+ private void disableClientSideValidation(MetaDataEntry entry)
+ {
+ if(entry.getProperty(CommonMetaDataKeys.DISABLE_CLIENT_SIDE_VALIDATION) == null)
+ {
+ entry.setProperty(CommonMetaDataKeys.DISABLE_CLIENT_SIDE_VALIDATION, new ArrayList<String>());
}
+
+ List<String> keysToDisable = entry.getProperty(CommonMetaDataKeys.DISABLE_CLIENT_SIDE_VALIDATION, List.class);
+ keysToDisable.add(entry.getKey());
}
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java Sun Oct 18 18:27:44 2009
@@ -25,6 +25,7 @@
import org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.validation.message.LabeledMessage;
+import org.apache.myfaces.extensions.validator.core.validation.exception.RequiredValidatorException;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -60,6 +61,8 @@
{
FacesMessage facesMessage = validatorException.getFacesMessage();
+ handleRequiredValidatorException(uiComponent, validatorException);
+
String label = getLabel(uiComponent);
if(label == null)
@@ -89,6 +92,21 @@
return true;
}
+ private void handleRequiredValidatorException(UIComponent uiComponent, ValidatorException validatorException)
+ {
+ if(validatorException instanceof RequiredValidatorException)
+ {
+ FacesMessage facesMessage = validatorException.getFacesMessage();
+ String inlineMessage = getInlineRequiredMessage(uiComponent);
+
+ if(inlineMessage != null)
+ {
+ facesMessage.setSummary(inlineMessage);
+ facesMessage.setDetail(inlineMessage);
+ }
+ }
+ }
+
private void refreshComponent(UIComponent uiComponent)
{
if(RequestContext.getCurrentInstance().isPartialRequest(FacesContext.getCurrentInstance()))
@@ -108,4 +126,10 @@
return (String)ReflectionUtils.tryToInvokeMethod(uiComponent,
ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "getLabel"));
}
+
+ private String getInlineRequiredMessage(UIComponent uiComponent)
+ {
+ return (String)ReflectionUtils.tryToInvokeMethod(uiComponent,
+ ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "getRequiredMessageDetail"));
+ }
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/validation/message/TrinidadViolationMessage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/validation/message/TrinidadViolationMessage.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/validation/message/TrinidadViolationMessage.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/validation/message/TrinidadViolationMessage.java Sun Oct 18 18:27:44 2009
@@ -22,8 +22,10 @@
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.LabeledMessage;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import javax.faces.context.FacesContext;
+import javax.faces.application.FacesMessage;
/**
* @author Gerhard Petracek
@@ -33,6 +35,7 @@
class TrinidadViolationMessage extends LabeledFacesMessage implements LabeledMessage
{
private static final long serialVersionUID = 6356800689961505154L;
+ public static final String MISSING_RESOURCE_MARKER = "???";
public TrinidadViolationMessage(Severity severity, String summary, String detail)
{
@@ -44,6 +47,51 @@
return super.getLabelAsString(FacesContext.getCurrentInstance());
}
+ @Override
+ public String getSummary()
+ {
+ FacesMessage result = tryToPlaceLabel(super.getSummary());
+
+ if(result != null)
+ {
+ super.setSummary(result.getSummary());
+ return result.getSummary();
+ }
+
+ return super.getSummary();
+ }
+
+ @Override
+ public String getDetail()
+ {
+ FacesMessage result = tryToPlaceLabel(super.getDetail());
+
+ if(result != null)
+ {
+ super.setDetail(result.getDetail());
+ return result.getDetail();
+ }
+
+ return super.getDetail();
+ }
+
+ private FacesMessage tryToPlaceLabel(String originalMessage)
+ {
+ if(!(originalMessage != null &&
+ originalMessage.startsWith(MISSING_RESOURCE_MARKER) &&
+ originalMessage.endsWith(MISSING_RESOURCE_MARKER)))
+ {
+ FacesMessage newFacesMessage = new FacesMessage(super.getSeverity(), super.getSummary(), super.getDetail());
+ for(int i = 0; i < 3; i++)
+ {
+ ExtValUtils.tryToPlaceLabel(newFacesMessage, getLabelText(), i);
+ }
+ return newFacesMessage;
+ }
+
+ return null;
+ }
+
public void setLabelText(String label)
{
super.setLabel(label);
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/AbstractValidationInterceptor.java Sun Oct 18 18:27:44 2009
@@ -176,6 +176,6 @@
protected boolean recordProcessedInformation()
{
//override if needed
- return true;
+ return false;
}
-}
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java Sun Oct 18 18:27:44 2009
@@ -162,6 +162,21 @@
}
}
+ @Override
+ /**
+ * to ensure backward compatibility
+ */
+ protected boolean interpretEmptyStringValuesAsNull()
+ {
+ return false;
+ }
+
+ @Override
+ protected boolean recordProcessedInformation()
+ {
+ return true;
+ }
+
protected Class getModuleKey()
{
//override if needed
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/CommonMetaDataKeys.java Sun Oct 18 18:27:44 2009
@@ -54,4 +54,5 @@
static final String CUSTOM = "custom";
static final String SKIP_VALIDATION = "skip_validation";
+ static final String DISABLE_CLIENT_SIDE_VALIDATION = "disable_client_side_validation";
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/ValidationStrategyToMetaDataTransformerSubMapperAwareNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/ValidationStrategyToMetaDataTransformerSubMapperAwareNameMapper.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/ValidationStrategyToMetaDataTransformerSubMapperAwareNameMapper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/ValidationStrategyToMetaDataTransformerSubMapperAwareNameMapper.java Sun Oct 18 18:27:44 2009
@@ -21,12 +21,14 @@
import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
import org.apache.myfaces.extensions.validator.core.mapper.SubMapperAwareNameMapper;
import org.apache.myfaces.extensions.validator.core.Nested;
+import org.apache.myfaces.extensions.validator.core.InvocationOrderComparator;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import java.util.List;
import java.util.ArrayList;
+import java.util.Collections;
/**
* @author Gerhard Petracek
@@ -44,9 +46,15 @@
if(!this.subNameMappers.contains(nameMapper) && nameMapper.getClass().isAnnotationPresent(Nested.class))
{
this.subNameMappers.add(nameMapper);
+ sortSubNameMappers();
}
}
+ private void sortSubNameMappers()
+ {
+ Collections.sort(this.subNameMappers, new InvocationOrderComparator<NameMapper<ValidationStrategy>>());
+ }
+
public String createName(ValidationStrategy source)
{
String result = null;
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipAfterInterceptorsException.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipAfterInterceptorsException.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipAfterInterceptorsException.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipAfterInterceptorsException.java Sun Oct 18 18:27:44 2009
@@ -18,8 +18,8 @@
*/
package org.apache.myfaces.extensions.validator.core.renderkit.exception;
-import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
/**
* @author Gerhard Petracek
@@ -28,4 +28,5 @@
@UsageInformation(UsageCategory.API)
public class SkipAfterInterceptorsException extends Exception
{
-}
+ private static final long serialVersionUID = -1472790498766251346L;
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipBeforeInterceptorsException.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipBeforeInterceptorsException.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipBeforeInterceptorsException.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipBeforeInterceptorsException.java Sun Oct 18 18:27:44 2009
@@ -18,8 +18,8 @@
*/
package org.apache.myfaces.extensions.validator.core.renderkit.exception;
-import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
/**
* @author Gerhard Petracek
@@ -28,4 +28,5 @@
@UsageInformation(UsageCategory.API)
public class SkipBeforeInterceptorsException extends Exception
{
-}
+ private static final long serialVersionUID = -418424051464814888L;
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipRendererDelegationException.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipRendererDelegationException.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipRendererDelegationException.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/exception/SkipRendererDelegationException.java Sun Oct 18 18:27:44 2009
@@ -19,8 +19,8 @@
package org.apache.myfaces.extensions.validator.core.renderkit.exception;
import org.apache.myfaces.extensions.validator.core.interceptor.RendererInterceptor;
-import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
/**
* @author Gerhard Petracek
@@ -32,6 +32,7 @@
protected RendererInterceptor exceptionSource;
protected Object information;
boolean skipOtherInterceptors = false;
+ private static final long serialVersionUID = 2343074077532915722L;
public SkipRendererDelegationException()
{
@@ -65,7 +66,7 @@
public Object getReturnValueOnException(Object currentReturnValue)
{
- if(this.exceptionSource != null)
+ if (this.exceptionSource != null)
{
return this.exceptionSource.getReturnValueOnSkipRendererDelegationException(this, currentReturnValue);
}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/RequiredValidatorException.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/RequiredValidatorException.java?rev=826485&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/RequiredValidatorException.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/exception/RequiredValidatorException.java Sun Oct 18 18:27:44 2009
@@ -0,0 +1,43 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.extensions.validator.core.validation.exception;
+
+import javax.faces.validator.ValidatorException;
+import javax.faces.application.FacesMessage;
+
+/**
+ * to handle special cases in ValidationExceptionInterceptors
+ *
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+public class RequiredValidatorException extends ValidatorException
+{
+ private static final long serialVersionUID = -4646331736428495884L;
+
+ public RequiredValidatorException(FacesMessage facesMessage)
+ {
+ super(facesMessage);
+ }
+
+ public RequiredValidatorException(FacesMessage facesMessage, Throwable throwable)
+ {
+ super(facesMessage, throwable);
+ }
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java Sun Oct 18 18:27:44 2009
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.validator.core.validation.strategy;
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.validation.exception.RequiredValidatorException;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -87,8 +88,19 @@
logger.trace("start processAfterValidatorException of " + getClass().getName());
}
- ValidatorException validatorException = new ValidatorException(
- ExtValUtils.convertFacesMessage(e.getFacesMessage()), e.getCause());
+ ValidatorException validatorException;
+
+ if(e instanceof RequiredValidatorException)
+ {
+ validatorException = new RequiredValidatorException(
+ ExtValUtils.convertFacesMessage(e.getFacesMessage()), e.getCause());
+ }
+ else
+ {
+ validatorException = new ValidatorException(
+ ExtValUtils.convertFacesMessage(e.getFacesMessage()), e.getCause());
+ }
+
if (processAfterValidatorException(
facesContext, uiComponent, metaDataEntry, convertedObject, validatorException))
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java Sun Oct 18 18:27:44 2009
@@ -26,7 +26,6 @@
import org.apache.myfaces.extensions.validator.core.validation.message.resolver.MessageResolver;
import org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameterExtractor;
import org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameterExtractorFactory;
-import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
@@ -50,6 +49,7 @@
import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationEntry;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
import org.apache.myfaces.extensions.validator.core.factory.NameMapperAwareFactory;
import org.apache.myfaces.extensions.validator.core.factory.FacesMessageFactory;
@@ -592,10 +592,7 @@
LOGGER.debug(metaDataTransformer.getClass().getName() + " instantiated");
}
- if(!(entry.getValue() instanceof Annotation &&
- ExtValUtils.getValidationParameterExtractor()
- .extract(entry.getValue(Annotation.class), DisableClientSideValidation.class)
- .iterator().hasNext()))
+ if(isClientSideValidationEnabled(entry))
{
metaData = metaDataTransformer.convertMetaData(entry);
}
@@ -626,6 +623,14 @@
return metaDataResult;
}
+ private static boolean isClientSideValidationEnabled(MetaDataEntry entry)
+ {
+ List<String> keysToDisable = entry.getProperty(
+ CommonMetaDataKeys.DISABLE_CLIENT_SIDE_VALIDATION, List.class);
+
+ return keysToDisable == null || !keysToDisable.contains(entry.getKey());
+ }
+
public static boolean interpretEmptyStringValuesAsNull()
{
//to deactivate: the parameter has to be explicitly false
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java Sun Oct 18 18:27:44 2009
@@ -23,6 +23,8 @@
import org.apache.myfaces.extensions.validator.crossval.annotation.NotEquals;
import org.apache.myfaces.extensions.validator.baseval.annotation.Length;
import org.apache.myfaces.extensions.validator.baseval.annotation.Pattern;
+import org.apache.myfaces.extensions.validator.baseval.annotation.Required;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
import javax.persistence.Column;
import javax.persistence.Temporal;
@@ -37,8 +39,9 @@
@Pattern("[A-Z][a-z]+")
private String firstName;
- @Length(minimum = 2)
- @Column(nullable = false, length = 20)
+ @Required(parameters = DisableClientSideValidation.class)
+ @Length(minimum = 2, parameters = DisableClientSideValidation.class)
+ @Column(length = 20)
private String lastName;
@Column(nullable = false, length = 10)
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/components/user_form.xhtml
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/components/user_form.xhtml?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/components/user_form.xhtml (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_01/src/main/webapp/components/user_form.xhtml Sun Oct 18 18:27:44 2009
@@ -35,6 +35,9 @@
<tr:inputText label="first name" value="#{bean.person.firstName}"/>
<tr:inputText label="last name" value="#{bean.person.lastName}"/>
+ <!--
+ <tr:inputText label="last name" value="#{bean.person.lastName}" requiredMessageDetail="{0} is required"/>
+ -->
<tr:inputDate label="birthday" value="#{bean.person.birthday}">
<tr:convertDateTime type="date" pattern="dd.MM.yyyy"/>
</tr:inputDate>
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_02/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_02/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_02/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/examples/feature-set_02/src/main/java/org/apache/myfaces/extensions/validator/demo/domain/Person.java Sun Oct 18 18:27:44 2009
@@ -18,6 +18,8 @@
*/
package org.apache.myfaces.extensions.validator.demo.domain;
+import org.apache.myfaces.extensions.validator.beanval.payload.DisableClientSideValidation;
+
import javax.validation.constraints.Size;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Past;
@@ -28,7 +30,8 @@
@Size(min = 2, max = 20)
private String firstName;
- @Size(min = 2, max = 20)
+ @NotNull(payload = DisableClientSideValidation.class)
+ @Size(min = 2, max = 20, payload = DisableClientSideValidation.class)
private String lastName;
@Size(min = 2, max = 10)
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationInterceptor.java Sun Oct 18 18:27:44 2009
@@ -44,6 +44,8 @@
@UsageInformation(UsageCategory.INTERNAL)
public class BeanValidationInterceptor extends AbstractValidationInterceptor
{
+ private BeanValidationInterceptorInternals bviUtils = new BeanValidationInterceptorInternals(this.logger);
+
@Override
public void beforeEncodeBegin(FacesContext facesContext, UIComponent uiComponent, Renderer wrapped)
throws IOException, SkipBeforeInterceptorsException, SkipRendererDelegationException
@@ -61,8 +63,6 @@
logger.trace("start to init component " + uiComponent.getClass().getName());
}
- BeanValidationInterceptorInternals bviUtils = new BeanValidationInterceptorInternals(this.logger);
-
PropertyDetails propertyDetails = bviUtils.extractPropertyDetails(facesContext, uiComponent);
if (propertyDetails != null)
@@ -77,12 +77,6 @@
}
}
- @Override
- protected boolean recordProcessedInformation()
- {
- return false;
- }
-
protected void processValidation(FacesContext facesContext, UIComponent uiComponent, Object convertedObject)
{
MetaDataExtractor metaDataExtractor = ExtValUtils.getComponentMetaDataExtractor();
@@ -128,7 +122,7 @@
protected boolean hasBeanValidationConstraints(PropertyInformation propertyInformation)
{
- return new BeanValidationInterceptorInternals(this.logger).hasBeanValidationConstraints(propertyInformation);
+ return this.bviUtils.hasBeanValidationConstraints(propertyInformation);
}
protected void processFieldValidation(FacesContext facesContext,
@@ -136,8 +130,8 @@
Object convertedObject,
PropertyInformation propertyInformation)
{
- new BeanValidationInterceptorInternals(this.logger).validate(
- facesContext, uiComponent, convertedObject, propertyInformation, supportMultipleViolationsPerField());
+ this.bviUtils.validate(facesContext, uiComponent, convertedObject,
+ propertyInformation, supportMultipleViolationsPerField());
}
protected boolean supportMultipleViolationsPerField()
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java?rev=826485&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java Sun Oct 18 18:27:44 2009
@@ -0,0 +1,64 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.extensions.validator.beanval.metadata.transformer;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.beanval.payload.DisableClientSideValidation;
+
+import javax.validation.metadata.ConstraintDescriptor;
+import javax.validation.Payload;
+import java.util.Map;
+import java.util.HashMap;
+import java.lang.annotation.Annotation;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation({UsageCategory.REUSE})
+public abstract class AbstractBeanValidationMetaDataTransformer<T extends Annotation> implements MetaDataTransformer
+{
+ public Map<String, Object> convertMetaData(MetaDataEntry metaDataEntry)
+ {
+ ConstraintDescriptor<? extends T> constraintDescriptor = metaDataEntry.getValue(ConstraintDescriptor.class);
+
+ if(isClientSideValidationEnabled(constraintDescriptor))
+ {
+ return convertConstraintDescriptor((ConstraintDescriptor<T>)constraintDescriptor);
+ }
+ return new HashMap<String, Object>();
+ }
+
+ private boolean isClientSideValidationEnabled(ConstraintDescriptor<? extends T> constraintDescriptor)
+ {
+ for(Class<? extends Payload> payload : constraintDescriptor.getPayload())
+ {
+ if(DisableClientSideValidation.class.isAssignableFrom(payload))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ protected abstract Map<String, Object> convertConstraintDescriptor(ConstraintDescriptor<T> constraintDescriptor);
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/NotNullMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/NotNullMetaDataTransformer.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/NotNullMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/NotNullMetaDataTransformer.java Sun Oct 18 18:27:44 2009
@@ -18,10 +18,10 @@
*/
package org.apache.myfaces.extensions.validator.beanval.metadata.transformer;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import javax.validation.constraints.NotNull;
+import javax.validation.metadata.ConstraintDescriptor;
import java.util.Map;
import java.util.HashMap;
@@ -29,9 +29,9 @@
* @author Gerhard Petracek
* @since x.x.3
*/
-public class NotNullMetaDataTransformer implements MetaDataTransformer
+public class NotNullMetaDataTransformer extends AbstractBeanValidationMetaDataTransformer<NotNull>
{
- public Map<String, Object> convertMetaData(MetaDataEntry metaDataEntry)
+ protected Map<String, Object> convertConstraintDescriptor(ConstraintDescriptor<NotNull> constraintDescriptor)
{
Map<String, Object> results = new HashMap<String, Object>();
results.put(CommonMetaDataKeys.WEAK_REQUIRED, true);
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/StringSizeMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/StringSizeMetaDataTransformer.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/StringSizeMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/StringSizeMetaDataTransformer.java Sun Oct 18 18:27:44 2009
@@ -18,8 +18,6 @@
*/
package org.apache.myfaces.extensions.validator.beanval.metadata.transformer;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import javax.validation.constraints.Size;
@@ -31,12 +29,12 @@
* @author Gerhard Petracek
* @since x.x.3
*/
-public class StringSizeMetaDataTransformer implements MetaDataTransformer
+public class StringSizeMetaDataTransformer extends AbstractBeanValidationMetaDataTransformer<Size>
{
- public Map<String, Object> convertMetaData(MetaDataEntry metaDataEntry)
+ protected Map<String, Object> convertConstraintDescriptor(ConstraintDescriptor<Size> constraintDescriptor)
{
Map<String, Object> results = new HashMap<String, Object>();
- Size annotation = (Size)metaDataEntry.getValue(ConstraintDescriptor.class).getAnnotation();
+ Size annotation = constraintDescriptor.getAnnotation();
int minimum = annotation.min();
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper.java?rev=826485&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper.java Sun Oct 18 18:27:44 2009
@@ -0,0 +1,50 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.extensions.validator.beanval.metadata.transformer.mapper;
+
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
+ .AbstractValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.beanval.validation.strategy.BeanValidationVirtualValidationStrategy;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation({UsageCategory.REUSE})
+public abstract class AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper
+ extends AbstractValidationStrategyToMetaDataTransformerNameMapper
+{
+ public final String createName(ValidationStrategy source)
+ {
+ if(source instanceof BeanValidationVirtualValidationStrategy)
+ {
+ BeanValidationVirtualValidationStrategy beanValidationAdapter =
+ (BeanValidationVirtualValidationStrategy)source;
+
+ return createBeanValidationTransformerName(beanValidationAdapter);
+ }
+ return null;
+ }
+
+ protected abstract String createBeanValidationTransformerName(
+ BeanValidationVirtualValidationStrategy validationStrategy);
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/NotNullNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/NotNullNameMapper.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/NotNullNameMapper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/NotNullNameMapper.java Sun Oct 18 18:27:44 2009
@@ -18,16 +18,13 @@
*/
package org.apache.myfaces.extensions.validator.beanval.metadata.transformer.mapper;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.beanval.metadata.transformer.NotNullMetaDataTransformer;
+import org.apache.myfaces.extensions.validator.beanval.validation.strategy.BeanValidationVirtualValidationStrategy;
import org.apache.myfaces.extensions.validator.core.Nested;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
- .AbstractValidationStrategyToMetaDataTransformerNameMapper;
-import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import org.apache.myfaces.extensions.validator.beanval.validation.strategy.BeanValidationVirtualValidationStrategy;
-import org.apache.myfaces.extensions.validator.beanval.metadata.transformer.NotNullMetaDataTransformer;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import javax.validation.metadata.ConstraintDescriptor;
import javax.validation.constraints.NotNull;
/**
@@ -35,23 +32,16 @@
* @since x.x.3
*/
@Nested
+@InvocationOrder(100)
@UsageInformation({UsageCategory.INTERNAL})
-public class NotNullNameMapper extends AbstractValidationStrategyToMetaDataTransformerNameMapper
+public class NotNullNameMapper extends AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper
{
- public String createName(ValidationStrategy source)
+ protected String createBeanValidationTransformerName(BeanValidationVirtualValidationStrategy adapter)
{
- if(source instanceof BeanValidationVirtualValidationStrategy)
+ if(NotNull.class.getName().equals(adapter.getConstraintDescriptor().getAnnotation().annotationType().getName()))
{
- BeanValidationVirtualValidationStrategy beanValidationAdapter =
- (BeanValidationVirtualValidationStrategy)source;
-
- ConstraintDescriptor descriptor = beanValidationAdapter.getConstraintDescriptor();
-
- if(NotNull.class.getName().equals(descriptor.getAnnotation().annotationType().getName()))
- {
- return NotNullMetaDataTransformer.class.getName();
- }
+ return NotNullMetaDataTransformer.class.getName();
}
return null;
}
-}
+}
\ No newline at end of file
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/SizeNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/SizeNameMapper.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/SizeNameMapper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/mapper/SizeNameMapper.java Sun Oct 18 18:27:44 2009
@@ -18,16 +18,13 @@
*/
package org.apache.myfaces.extensions.validator.beanval.metadata.transformer.mapper;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.Nested;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
- .AbstractValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.beanval.validation.strategy.BeanValidationVirtualValidationStrategy;
import org.apache.myfaces.extensions.validator.beanval.metadata.transformer.StringSizeMetaDataTransformer;
-import javax.validation.metadata.ConstraintDescriptor;
import javax.validation.constraints.Size;
/**
@@ -35,23 +32,16 @@
* @since x.x.3
*/
@Nested
+@InvocationOrder(101)
@UsageInformation({UsageCategory.INTERNAL})
-public class SizeNameMapper extends AbstractValidationStrategyToMetaDataTransformerNameMapper
+public class SizeNameMapper extends AbstractBeanValidationVirtualValidationStrategyToMetaDataTransformerNameMapper
{
- public String createName(ValidationStrategy source)
+ protected String createBeanValidationTransformerName(BeanValidationVirtualValidationStrategy adapter)
{
- if(source instanceof BeanValidationVirtualValidationStrategy)
+ if(Size.class.getName().equals(adapter.getConstraintDescriptor().getAnnotation().annotationType().getName()) &&
+ String.class.getName().equals(adapter.getElementClass().getName()))
{
- BeanValidationVirtualValidationStrategy beanValidationAdapter =
- (BeanValidationVirtualValidationStrategy)source;
-
- ConstraintDescriptor descriptor = beanValidationAdapter.getConstraintDescriptor();
-
- if(Size.class.getName().equals(descriptor.getAnnotation().annotationType().getName()) &&
- String.class.getName().equals(beanValidationAdapter.getElementClass().getName()))
- {
- return StringSizeMetaDataTransformer.class.getName();
- }
+ return StringSizeMetaDataTransformer.class.getName();
}
return null;
}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/payload/DisableClientSideValidation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/payload/DisableClientSideValidation.java?rev=826485&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/payload/DisableClientSideValidation.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/payload/DisableClientSideValidation.java Sun Oct 18 18:27:44 2009
@@ -0,0 +1,33 @@
+/*
+ * 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.
+ */
+package org.apache.myfaces.extensions.validator.beanval.payload;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+import javax.validation.Payload;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.API)
+public interface DisableClientSideValidation extends Payload
+{
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java Sun Oct 18 18:27:44 2009
@@ -24,6 +24,7 @@
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.validation.message.LabeledMessage;
import org.apache.myfaces.extensions.validator.core.validation.parameter.ViolationSeverity;
+import org.apache.myfaces.extensions.validator.core.validation.exception.RequiredValidatorException;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -75,6 +76,8 @@
String label = (String) ReflectionUtils.tryToInvokeMethod(uiComponent,
ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "getLabel"));
+ handleRequiredValidatorException(uiComponent, validatorException);
+
if(label == null)
{
label = uiComponent.getClientId(facesContext);
@@ -113,6 +116,27 @@
return true;
}
+ private void handleRequiredValidatorException(UIComponent uiComponent, ValidatorException validatorException)
+ {
+ if(validatorException instanceof RequiredValidatorException)
+ {
+ FacesMessage facesMessage = validatorException.getFacesMessage();
+ String inlineMessage = getInlineRequiredMessage(uiComponent);
+
+ if(inlineMessage != null)
+ {
+ facesMessage.setSummary(inlineMessage);
+ facesMessage.setDetail(inlineMessage);
+ }
+ }
+ }
+
+ private String getInlineRequiredMessage(UIComponent uiComponent)
+ {
+ return (String)ReflectionUtils.tryToInvokeMethod(uiComponent,
+ ReflectionUtils.tryToGetMethod(uiComponent.getClass(), "getRequiredMessage"));
+ }
+
@ToDo(value = Priority.MEDIUM, description = "refactor to a generic parameter extractor")
private boolean displayAsException(FacesMessage facesMessage, Annotation annotation)
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java Sun Oct 18 18:27:44 2009
@@ -25,6 +25,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.persistence.Basic;
import javax.persistence.Column;
@@ -49,7 +50,7 @@
if(annotation instanceof Column)
{
- if(!((Column) annotation).nullable())
+ if((!((Column) annotation).nullable()) && ExtValUtils.interpretEmptyStringValuesAsNull())
{
results.put(CommonMetaDataKeys.REQUIRED, true);
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/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/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java Sun Oct 18 18:27:44 2009
@@ -22,6 +22,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import org.apache.myfaces.extensions.validator.core.validation.message.resolver.AbstractValidationErrorMessageResolver;
+import org.apache.myfaces.extensions.validator.core.validation.exception.RequiredValidatorException;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.ToDo;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -128,10 +129,10 @@
@ToDo(Priority.MEDIUM)
private void checkRequiredConvertedObject(Object convertedObject) throws ValidatorException
{
- if (convertedObject == null || convertedObject.equals(""))
+ if (convertedObject == null || ("".equals(convertedObject) && ExtValUtils.interpretEmptyStringValuesAsNull()))
{
this.violation = CommonMetaDataKeys.REQUIRED;
- throw new ValidatorException(getValidationErrorFacesMessage(null));
+ throw new RequiredValidatorException(getValidationErrorFacesMessage(null));
}
}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/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/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java?rev=826485&r1=826484&r2=826485&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java Sun Oct 18 18:27:44 2009
@@ -23,6 +23,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.AbstractAnnotationValidationStrategy;
import org.apache.myfaces.extensions.validator.core.validation.message.resolver.AbstractValidationErrorMessageResolver;
+import org.apache.myfaces.extensions.validator.core.validation.exception.RequiredValidatorException;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -51,7 +52,8 @@
(convertedObject instanceof Collection && ((Collection)convertedObject).isEmpty()) ||
(convertedObject instanceof Map && ((Map)convertedObject).isEmpty()))
{
- throw new ValidatorException(getValidationErrorFacesMessage(metaDataEntry.getValue(Required.class)));
+ throw new RequiredValidatorException(
+ getValidationErrorFacesMessage(metaDataEntry.getValue(Required.class)));
}
}