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/04/07 12:17:52 UTC
svn commit: r762672 - in /myfaces/extensions/validator/trunk:
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/
core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/con...
Author: gpetracek
Date: Tue Apr 7 10:17:51 2009
New Revision: 762672
URL: http://svn.apache.org/viewvc?rev=762672&view=rev
Log:
EXTVAL-39 basic mechanism
Modified:
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java
Modified: myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java?rev=762672&r1=762671&r2=762672&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadRendererInterceptor.java Tue Apr 7 10:17:51 2009
@@ -26,7 +26,6 @@
import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
-import org.apache.myfaces.extensions.validator.core.CustomInformation;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
@@ -39,8 +38,6 @@
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import java.util.List;
-import java.lang.annotation.Annotation;
/**
* @author Gerhard Petracek
@@ -110,7 +107,7 @@
}
if(Boolean.TRUE.equals(skipInitialization) && !metaData.isEmpty() &&
- isSkipableValidationStrategy(validationStrategy.getClass()))
+ ExtValUtils.isSkipableValidationStrategy(validationStrategy.getClass()))
{
metaData.put(CommonMetaDataKeys.SKIP_VALIDATION, true);
}
@@ -133,38 +130,4 @@
return !(isReadOnly || isDisabled);
}
-
- @SuppressWarnings({"unchecked"})
- private boolean isSkipableValidationStrategy(Class<? extends ValidationStrategy> validationStrategyClass)
- {
- String key = ExtValContext.getContext().getInformationProviderBean()
- .get(CustomInformation.BASE_PACKAGE) + CommonMetaDataKeys.SKIP_VALIDATION.toUpperCase();
- List<Class<? extends Annotation>> markerList =
- (List<Class<? extends Annotation>>)ExtValContext.getContext().getGlobalProperty(key);
-
- if(markerList == null)
- {
- return false;
- }
-
- for(Class<? extends Annotation> currentClass : markerList)
- {
- if(currentClass.isAnnotation())
- {
- if(validationStrategyClass.isAnnotationPresent(currentClass))
- {
- return true;
- }
- }
- else
- {
- if(currentClass.isAssignableFrom(validationStrategyClass))
- {
- return true;
- }
- }
- }
-
- return false;
- }
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java?rev=762672&r1=762671&r2=762672&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/configuration/StaticConfigurationNames.java Tue Apr 7 10:17:51 2009
@@ -30,5 +30,7 @@
{
META_DATA_TO_VALIDATION_STRATEGY_CONFIG,
VALIDATION_STRATEGY_TO_MESSAGE_RESOLVER_CONFIG,
- VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_CONFIG
+ VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_CONFIG,
+
+ SKIP_VALIDATION_SUPPORT_CONFIG
}
\ No newline at end of file
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=762672&r1=762671&r2=762672&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 Tue Apr 7 10:17:51 2009
@@ -36,11 +36,16 @@
import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
import org.apache.myfaces.extensions.validator.core.metadata.extractor.ComponentMetaDataExtractorFactory;
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfiguration;
+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.factory.FactoryNames;
import org.apache.myfaces.extensions.validator.core.factory.NameMapperAwareFactory;
import org.apache.myfaces.extensions.validator.core.factory.FacesMessageFactory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -48,7 +53,8 @@
import javax.faces.application.FacesMessage;
import java.util.Map;
import java.util.MissingResourceException;
-
+import java.util.List;
+import java.util.ArrayList;
/**
* @author Gerhard Petracek
@@ -57,6 +63,8 @@
@UsageInformation(UsageCategory.INTERNAL)
public class ExtValUtils
{
+ private static final Log LOGGER = LogFactory.getLog(ExtValUtils.class);
+
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";
@@ -339,4 +347,69 @@
facesMessage.setSummary(facesRequiredMessage);
facesMessage.setDetail(facesRequiredMessageDetail);
}
+
+ public static boolean isSkipableValidationStrategy(Class<? extends ValidationStrategy> targetClass)
+ {
+ for(Class currentClass : ExtValUtils.getSkipValidationSupportClassList())
+ {
+ if(ExtValUtils.isSkipValidationSupported(currentClass, targetClass))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ public static List<Class> getSkipValidationSupportClassList()
+ {
+ List<StaticConfiguration<String, String>> staticConfigurationList = ExtValContext.getContext()
+ .getStaticConfiguration(StaticConfigurationNames.SKIP_VALIDATION_SUPPORT_CONFIG);
+
+ List<Class> markerList = new ArrayList<Class>();
+
+ Class currentClass;
+ for(StaticConfiguration<String, String> currentEntry : staticConfigurationList)
+ {
+ for(StaticConfigurationEntry<String, String> currentConfigurationEntry : currentEntry.getMapping())
+ {
+ currentClass = ClassUtils.tryToLoadClassForName(currentConfigurationEntry.getTarget());
+
+ if(currentClass != null)
+ {
+ markerList.add(currentClass);
+ }
+ else
+ {
+ if(LOGGER.isWarnEnabled())
+ {
+ LOGGER.warn("configuration entry provides an invalid entry: "
+ + currentConfigurationEntry.getTarget());
+ }
+ }
+ }
+ }
+
+ return markerList;
+ }
+
+ public static boolean isSkipValidationSupported(Class currentClass, Class targetClass)
+ {
+ if(currentClass.isAnnotation())
+ {
+ if(targetClass.isAnnotationPresent(currentClass))
+ {
+ return true;
+ }
+ }
+ else
+ {
+ if(currentClass.isAssignableFrom(targetClass))
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java?rev=762672&r1=762671&r2=762672&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/PropertyValidationModuleStartupListener.java Tue Apr 7 10:17:51 2009
@@ -22,21 +22,18 @@
import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
import org.apache.myfaces.extensions.validator.core.startup.AbstractStartupListener;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
-import org.apache.myfaces.extensions.validator.core.CustomInformation;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
import org.apache.myfaces.extensions.validator.core.interceptor.ValidationInterceptor;
import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticResourceBundleConfiguration;
import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfiguration;
import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticInMemoryConfiguration;
import org.apache.myfaces.extensions.validator.internal.ToDo;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.crossval.recorder.CrossValidationUserInputRecorder;
-import java.util.List;
-import java.util.ArrayList;
-
/**
* @author Gerhard Petracek
* @since 1.x.1
@@ -92,16 +89,13 @@
ExtValContext.getContext().denyRendererInterceptor(ValidationInterceptor.class);
ExtValContext.getContext().registerRendererInterceptor(new ValidationInterceptorWithSkipValidationSupport());
- String key = ExtValContext.getContext().getInformationProviderBean()
- .get(CustomInformation.BASE_PACKAGE) + CommonMetaDataKeys.SKIP_VALIDATION.toUpperCase();
- List<Class> markerList = (List<Class>)ExtValContext.getContext().getGlobalProperty(key);
+ StaticInMemoryConfiguration config = new StaticInMemoryConfiguration();
+ //it's just required to set the target
+ config.addMapping(CommonMetaDataKeys.SKIP_VALIDATION, SkipValidationSupport.class.getName());
- if(markerList == null)
- {
- markerList = new ArrayList<Class>();
- ExtValContext.getContext().addGlobalProperty(key, markerList);
- }
-
- markerList.add(SkipValidationSupport.class);
+ ExtValContext.getContext()
+ .addStaticConfiguration(StaticConfigurationNames.SKIP_VALIDATION_SUPPORT_CONFIG, config);
+
+ //config.addMapping(CommonMetaDataKeys.SKIP_VALIDATION, RequiredStrategy.class.getName());
}
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java?rev=762672&r1=762671&r2=762672&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/ValidationInterceptorWithSkipValidationSupport.java Tue Apr 7 10:17:51 2009
@@ -24,8 +24,8 @@
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys;
import org.apache.myfaces.extensions.validator.core.interceptor.ValidationInterceptor;
-import org.apache.myfaces.extensions.validator.baseval.annotation.SkipValidationSupport;
import org.apache.myfaces.extensions.validator.baseval.strategy.SkipValidationStrategy;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import javax.faces.context.FacesContext;
import javax.faces.component.UIComponent;
@@ -43,7 +43,7 @@
ValidationStrategy validationStrategy,
MetaDataEntry metaDataEntry)
{
- if(validationStrategy.getClass().isAnnotationPresent(SkipValidationSupport.class))
+ if(ExtValUtils.isSkipableValidationStrategy(validationStrategy.getClass()))
{
Boolean skipValidation = metaDataEntry.getProperty(
PropertyInformationKeys.SKIP_VALIDATION, Boolean.class);