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/11/29 14:47:41 UTC
svn commit: r885228 - 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/
core/src/main/...
Author: gpetracek
Date: Sun Nov 29 13:47:40 2009
New Revision: 885228
URL: http://svn.apache.org/viewvc?rev=885228&view=rev
Log:
EXTVAL-73 factory for validation parameters
Added:
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/DefaultValidationParameterFactory.java
Modified:
myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInformation.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.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/core/interceptor/ViolationSeverityValidationExceptionInterceptor.java
myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/CustomSeverity1TestCase.java
myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/baseval/CustomSeverity1TestCase.java
myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java
myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/BeanValidationUtils.java
myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/AbstractValidationParameterAwareTransformer.java
myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java
Modified: myfaces/extensions/validator/trunk/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/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadMetaDataExtractionInterceptor.java Sun Nov 29 13:47:40 2009
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.validator.trinidad.interceptor;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
import org.apache.myfaces.extensions.validator.core.interceptor
.ComponentInitializationAwareMetaDataExtractionInterceptor;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
@@ -62,7 +63,8 @@
private boolean isClientValidationDisabled(MetaDataEntry entry)
{
return ExtValUtils.getValidationParameterExtractor()
- .extract(entry.getValue(Annotation.class), ExtValUtils.getDisableClientSideValidationKey())
+ .extract(entry.getValue(Annotation.class),
+ ExtValUtils.getValidationParameterClassFor(DisableClientSideValidation.class))
.iterator().hasNext();
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInformation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInformation.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInformation.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInformation.java Sun Nov 29 13:47:40 2009
@@ -51,6 +51,7 @@
VALIDATION_STRATEGY_FACTORY,
COMPONENT_META_DATA_EXTRACTOR_FACTORY,
VALIDATION_PARAMETER_EXTRACTOR_FACTORY,
+ VALIDATION_PARAMETER_FACTORY,
META_DATA_TRANSFORMER_FACTORY,
FACES_MESSAGE_FACTORY,
STORAGE_MANAGER_FACTORY,
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java Sun Nov 29 13:47:40 2009
@@ -115,6 +115,8 @@
"ComponentMetaDataExtractorFactory");
customizableInfos.put(CustomInformation.VALIDATION_PARAMETER_EXTRACTOR_FACTORY,
"ValidationParameterExtractorFactory");
+ customizableInfos.put(CustomInformation.VALIDATION_PARAMETER_FACTORY,
+ "ValidationParameterFactory");
customizableInfos.put(CustomInformation.META_DATA_TRANSFORMER_FACTORY,
"MetaDataTransformerFactory");
customizableInfos.put(CustomInformation.FACES_MESSAGE_FACTORY,
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java Sun Nov 29 13:47:40 2009
@@ -97,6 +97,9 @@
static final String CUSTOM_VALIDATION_PARAMETER_EXTRACTOR_FACTORY = WebXmlUtils
.getInitParameter("CUSTOM_VALIDATION_PARAMETER_EXTRACTOR_FACTORY");
+ static final String CUSTOM_VALIDATION_PARAMETER_FACTORY = WebXmlUtils
+ .getInitParameter("CUSTOM_VALIDATION_PARAMETER_FACTORY");
+
static final String CUSTOM_META_DATA_TRANSFORMER_FACTORY = WebXmlUtils
.getInitParameter("CUSTOM_META_DATA_TRANSFORMER_FACTORY");
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java Sun Nov 29 13:47:40 2009
@@ -34,6 +34,7 @@
import org.apache.myfaces.extensions.validator.core.validation.message.resolver.DefaultMessageResolverFactory;
import org.apache.myfaces.extensions.validator.core.validation.message.DefaultFacesMessageFactory;
import org.apache.myfaces.extensions.validator.core.validation.parameter.DefaultValidationParameterExtractorFactory;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.DefaultValidationParameterFactory;
import org.apache.myfaces.extensions.validator.util.ClassUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -120,6 +121,10 @@
case STORAGE_MANAGER_FACTORY:
factory = createStorageManagerFactory();
break;
+
+ case VALIDATION_PARAMETER_FACTORY:
+ factory = createValidationParameterFactory();
+ break;
default: //required by checkstyle
}
@@ -326,4 +331,30 @@
}
return factory;
}
+
+ private Object createValidationParameterFactory()
+ {
+ Object factory = null;
+
+ List<String> validationParameterFactoryClassNames = new ArrayList<String>();
+
+ validationParameterFactoryClassNames
+ .add(WebXmlParameter.CUSTOM_VALIDATION_PARAMETER_FACTORY);
+ validationParameterFactoryClassNames
+ .add(ExtValContext.getContext().getInformationProviderBean()
+ .get(CustomInformation.VALIDATION_PARAMETER_FACTORY));
+ validationParameterFactoryClassNames.add(DefaultValidationParameterFactory.class.getName());
+
+ for (String className : validationParameterFactoryClassNames)
+ {
+ factory = ClassUtils.tryToInstantiateClassForName(className);
+
+ if (factory != null)
+ {
+ break;
+ }
+ }
+ return factory;
+ }
+
}
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java Sun Nov 29 13:47:40 2009
@@ -29,7 +29,10 @@
public enum FactoryNames
{
COMPONENT_META_DATA_EXTRACTOR_FACTORY,
+
VALIDATION_PARAMETER_EXTRACTOR_FACTORY,
+ VALIDATION_PARAMETER_FACTORY,
+
VALIDATION_STRATEGY_FACTORY,
MESSAGE_RESOLVER_FACTORY,
META_DATA_TRANSFORMER_FACTORY,
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=885228&r1=885227&r2=885228&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 Sun Nov 29 13:47:40 2009
@@ -33,5 +33,6 @@
VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_CONFIG,
STORAGE_TYPE_TO_STORAGE_MANAGER_CONFIG,
- SKIP_VALIDATION_SUPPORT_CONFIG
+ SKIP_VALIDATION_SUPPORT_CONFIG,
+ VALIDATION_PARAMETER_CONFIG
}
\ No newline at end of file
Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationSeverityValidationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationSeverityValidationExceptionInterceptor.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationSeverityValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ViolationSeverityValidationExceptionInterceptor.java Sun Nov 29 13:47:40 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.ViolationSeverity;
import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -63,7 +64,9 @@
private void tryToPlaceSeverity(ValidatorException validatorException, Annotation annotation)
{
for(FacesMessage.Severity severity : ExtValUtils.getValidationParameterExtractor()
- .extract(annotation, ExtValUtils.getViolationSeverityKey(), FacesMessage.Severity.class))
+ .extract(annotation,
+ ExtValUtils.getValidationParameterClassFor(ViolationSeverity.class),
+ FacesMessage.Severity.class))
{
validatorException.getFacesMessage().setSeverity(severity);
}
Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/DefaultValidationParameterFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/DefaultValidationParameterFactory.java?rev=885228&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/DefaultValidationParameterFactory.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/parameter/DefaultValidationParameterFactory.java Sun Nov 29 13:47:40 2009
@@ -0,0 +1,123 @@
+/*
+ * 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.parameter;
+
+import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
+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.initializer.configuration.StaticConfigurationNames;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.util.ClassUtils;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * maps internal parameters to optionally available custom parameters
+ *
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.API)
+public class DefaultValidationParameterFactory implements ClassMappingFactory<Class, Class>
+{
+ private Map<Class, Class> parameterMapping = new HashMap<Class, Class>();
+
+ public Class create(Class source)
+ {
+ if (this.parameterMapping.containsKey(source))
+ {
+ return this.parameterMapping.get(source);
+ }
+
+ Class result;
+
+ //it's important to look for the static configs first - global parameters are used internally
+ result = tryToFindStaticConfig(source);
+
+ if (result == null)
+ {
+ result = tryToFindGlobalParameter(source);
+ }
+
+ if (result == null)
+ {
+ result = source;
+ }
+
+ cacheMapping(source, result);
+ return result;
+ }
+
+ private Class tryToFindGlobalParameter(Class source)
+ {
+ Object target = ExtValContext.getContext().getGlobalProperty(source.getName());
+
+ if (target instanceof Class)
+ {
+ return (Class) target;
+ }
+ return null;
+ }
+
+ private Class tryToFindStaticConfig(Class source)
+ {
+ Class result = null;
+ for (StaticConfiguration<String, String> config : ExtValContext.getContext()
+ .getStaticConfiguration(StaticConfigurationNames.VALIDATION_PARAMETER_CONFIG))
+ {
+ result = tryToMap(source, config.getMapping());
+
+ if (result != null)
+ {
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ private Class tryToMap(Class source, List<StaticConfigurationEntry<String, String>> mapping)
+ {
+ Class target = null;
+
+ for (StaticConfigurationEntry<String, String> entry : mapping)
+ {
+ if (source.getName().equals(entry.getSource()))
+ {
+ target = ClassUtils.tryToLoadClassForName(entry.getTarget());
+
+ if (target != null)
+ {
+ break;
+ }
+ }
+ }
+
+ return target;
+ }
+
+ private void cacheMapping(Class source, Class target)
+ {
+ this.parameterMapping.put(source, target);
+ }
+}
\ 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=885228&r1=885227&r2=885228&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 29 13:47:40 2009
@@ -23,7 +23,6 @@
import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
import org.apache.myfaces.extensions.validator.core.ValidationModuleKey;
-import org.apache.myfaces.extensions.validator.core.ProjectStage;
import org.apache.myfaces.extensions.validator.core.el.AbstractELHelperFactory;
import org.apache.myfaces.extensions.validator.core.el.ELHelper;
import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
@@ -53,8 +52,6 @@
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.ViolationSeverityInterpreter;
-import org.apache.myfaces.extensions.validator.core.validation.parameter.ViolationSeverity;
-import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -538,6 +535,14 @@
.create();
}
+ public static Class getValidationParameterClassFor(Class source)
+ {
+ ClassMappingFactory<Class, Class> validationParameterFactory = ExtValContext.getContext().getFactoryFinder()
+ .getFactory(FactoryNames.VALIDATION_PARAMETER_FACTORY, ClassMappingFactory.class);
+
+ return validationParameterFactory.create(source);
+ }
+
private static boolean isValidationParameterExtractionDeactivated()
{
return "true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_VALIDATION_PARAMETERS);
@@ -927,50 +932,4 @@
}
return targetComponent;
}
-
-
- public static Class getViolationSeverityKey()
- {
- Object globalProperty = ExtValContext.getContext().getGlobalProperty(ViolationSeverity.class.getName());
-
- if(globalProperty instanceof Class)
- {
- return (Class)globalProperty;
- }
-
- tryToCreateMessageInDevMode(ViolationSeverity.class);
-
- return ViolationSeverity.class;
- }
-
- public static Class getDisableClientSideValidationKey()
- {
- Object globalProperty = ExtValContext.getContext()
- .getGlobalProperty(DisableClientSideValidation.class.getName());
-
- if(globalProperty instanceof Class)
- {
- return (Class)globalProperty;
- }
-
- tryToCreateMessageInDevMode(DisableClientSideValidation.class);
-
- return DisableClientSideValidation.class;
- }
-
- private static void tryToCreateMessageInDevMode(Class fallbackClass)
- {
- String message = "[dev-mode warning] fallback to " + fallbackClass.getName();
-
- if(ProjectStage.is(ProjectStage.Development))
- {
- FacesContext.getCurrentInstance()
- .addMessage(null, createFacesMessage(FacesMessage.SEVERITY_WARN, message, message));
- }
-
- if(LOGGER.isWarnEnabled())
- {
- LOGGER.warn(message);
- }
- }
}
Modified: myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/CustomSeverity1TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/CustomSeverity1TestCase.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/CustomSeverity1TestCase.java (original)
+++ myfaces/extensions/validator/trunk/test-modules/bean-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/beanval/CustomSeverity1TestCase.java Sun Nov 29 13:47:40 2009
@@ -24,6 +24,8 @@
import org.apache.myfaces.extensions.validator.test.beanval.custom.CustomViolationSeverity;
import org.apache.myfaces.extensions.validator.beanval.payload.ViolationSeverity;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticInMemoryConfiguration;
import javax.faces.application.FacesMessage;
@@ -44,7 +46,7 @@
return new CustomSeverityTestCase1PageBean();
}
- public void testCustomPayload()
+ public void testCustomPayloadViaGlobalProperty()
{
ExtValContext.getContext()
.addGlobalProperty(ViolationSeverity.Warn.class.getName(), CustomViolationSeverity.Warning.class);
@@ -61,6 +63,26 @@
checkMessageSeverities(FacesMessage.SEVERITY_WARN);
}
+ public void testCustomPayloadViaStaticConfig()
+ {
+ StaticInMemoryConfiguration config = new StaticInMemoryConfiguration();
+ config.addMapping(ViolationSeverity.Warn.class.getName(), CustomViolationSeverity.Warning.class.getName());
+
+ ExtValContext.getContext()
+ .addStaticConfiguration(StaticConfigurationNames.VALIDATION_PARAMETER_CONFIG, config);
+
+ createValueBindingForComponent(this.inputComponent1, "#{testBean.property1}");
+ setValueToValidate(this.inputComponent1, "");
+
+ validateComponents();
+
+ assertComponentValid(this.inputComponent1);
+ assertNavigationBlocked(false);
+
+ checkMessageCount(1);
+ checkMessageSeverities(FacesMessage.SEVERITY_WARN);
+ }
+
public void testUnknownPayload()
{
createValueBindingForComponent(this.inputComponent1, "#{testBean.property1}");
Modified: myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/baseval/CustomSeverity1TestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/baseval/CustomSeverity1TestCase.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/baseval/CustomSeverity1TestCase.java (original)
+++ myfaces/extensions/validator/trunk/test-modules/property-validation-tests/src/test/java/org/apache/myfaces/extensions/validator/test/propval/baseval/CustomSeverity1TestCase.java Sun Nov 29 13:47:40 2009
@@ -31,6 +31,8 @@
import org.apache.myfaces.extensions.validator.test.propval.CustomSeverityTestBean;
import org.apache.myfaces.extensions.validator.test.propval.custom.CustomViolationSeverity;
import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticInMemoryConfiguration;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
import org.apache.myfaces.extensions.validator.core.validation.parameter.ViolationSeverity;
public class CustomSeverity1TestCase extends AbstractPropertyValidationTestCase
@@ -81,7 +83,7 @@
bean = null;
}
- public void testCustomValidationParameter() throws Exception
+ public void testCustomValidationParameterViaGlobalProperty() throws Exception
{
ExtValContext.getContext()
.addGlobalProperty(ViolationSeverity.class.getName(), CustomViolationSeverity.class);
@@ -100,6 +102,28 @@
checkMessageSeverities(FacesMessage.SEVERITY_WARN);
}
+ public void testCustomValidationParameterViaStaticConfig() throws Exception
+ {
+ StaticInMemoryConfiguration config = new StaticInMemoryConfiguration();
+ config.addMapping(ViolationSeverity.class.getName(), CustomViolationSeverity.class.getName());
+
+ ExtValContext.getContext()
+ .addStaticConfiguration(StaticConfigurationNames.VALIDATION_PARAMETER_CONFIG, config);
+
+ createValueBinding(inputComponent, "value", "#{testBean.name}");
+
+ inputComponent.setSubmittedValue("");
+
+ inputComponent.validate(facesContext);
+
+ assertTrue(inputComponent.isValid());
+
+ assertNavigationBlocked(false);
+
+ checkMessageCount(1);
+ checkMessageSeverities(FacesMessage.SEVERITY_WARN);
+ }
+
public void testUnknownValidationParameter() throws Exception
{
createValueBinding(inputComponent, "value", "#{testBean.name}");
Modified: myfaces/extensions/validator/trunk/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/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/metadata/transformer/AbstractBeanValidationMetaDataTransformer.java Sun Nov 29 13:47:40 2009
@@ -23,7 +23,7 @@
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.ViolationSeverity;
-import org.apache.myfaces.extensions.validator.beanval.util.BeanValidationUtils;
+import org.apache.myfaces.extensions.validator.beanval.payload.DisableClientSideValidation;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import javax.validation.metadata.ConstraintDescriptor;
@@ -56,7 +56,7 @@
{
for(Class<? extends Payload> payload : constraintDescriptor.getPayload())
{
- if(BeanValidationUtils.getDisableClientSideValidationKey().isAssignableFrom(payload))
+ if(ExtValUtils.getValidationParameterClassFor(DisableClientSideValidation.class).isAssignableFrom(payload))
{
return false;
}
@@ -71,15 +71,15 @@
for (Class<? extends Payload> payload : constraintDescriptor.getPayload())
{
- if (BeanValidationUtils.getWarnClass().isAssignableFrom(payload))
+ if (ExtValUtils.getValidationParameterClassFor(ViolationSeverity.Warn.class).isAssignableFrom(payload))
{
testMessage.setSeverity(ViolationSeverity.Warn.VALUE);
}
- else if(BeanValidationUtils.getInfoClass().isAssignableFrom(payload))
+ else if(ExtValUtils.getValidationParameterClassFor(ViolationSeverity.Info.class).isAssignableFrom(payload))
{
testMessage.setSeverity(ViolationSeverity.Info.VALUE);
}
- else if(BeanValidationUtils.getFatalClass().isAssignableFrom(payload))
+ else if(ExtValUtils.getValidationParameterClassFor(ViolationSeverity.Fatal.class).isAssignableFrom(payload))
{
testMessage.setSeverity(ViolationSeverity.Fatal.VALUE);
}
Modified: myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/BeanValidationUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/BeanValidationUtils.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/BeanValidationUtils.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/BeanValidationUtils.java Sun Nov 29 13:47:40 2009
@@ -21,12 +21,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.extensions.validator.beanval.storage.ModelValidationEntry;
-import org.apache.myfaces.extensions.validator.beanval.payload.ViolationSeverity;
-import org.apache.myfaces.extensions.validator.beanval.payload.DisableClientSideValidation;
import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
import org.apache.myfaces.extensions.validator.core.validation.message.FacesMessageHolder;
-import org.apache.myfaces.extensions.validator.core.ProjectStage;
-import org.apache.myfaces.extensions.validator.core.ExtValContext;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -173,78 +169,4 @@
}
return validatorFactory;
}
-
- public static Class getWarnClass()
- {
- Object globalProperty = ExtValContext.getContext().getGlobalProperty(ViolationSeverity.Warn.class.getName());
-
- if(globalProperty instanceof Class)
- {
- return (Class)globalProperty;
- }
-
- tryToCreateMessageInDevMode(ViolationSeverity.Warn.class);
-
- return ViolationSeverity.Warn.class;
- }
-
- public static Class getInfoClass()
- {
- Object globalProperty = ExtValContext.getContext().getGlobalProperty(ViolationSeverity.Info.class.getName());
-
- if(globalProperty instanceof Class)
- {
- return (Class)globalProperty;
- }
-
- tryToCreateMessageInDevMode(ViolationSeverity.Info.class);
-
- return ViolationSeverity.Info.class;
- }
-
- public static Class getFatalClass()
- {
- Object globalProperty = ExtValContext.getContext().getGlobalProperty(ViolationSeverity.Fatal.class.getName());
-
- if(globalProperty instanceof Class)
- {
- return (Class)globalProperty;
- }
-
- tryToCreateMessageInDevMode(ViolationSeverity.Fatal.class);
-
- return ViolationSeverity.Fatal.class;
- }
-
- public static Class getDisableClientSideValidationKey()
- {
- Object globalProperty = ExtValContext.getContext()
- .getGlobalProperty(DisableClientSideValidation.class.getName());
-
- if(globalProperty instanceof Class)
- {
- return (Class)globalProperty;
- }
-
- tryToCreateMessageInDevMode(DisableClientSideValidation.class);
-
- return DisableClientSideValidation.class;
- }
-
- private static void tryToCreateMessageInDevMode(Class usedFallback)
- {
- String message = "[dev-mode warning] fallback to " + usedFallback.getName();
-
- if(ProjectStage.is(ProjectStage.Development))
- {
- FacesContext.getCurrentInstance()
- .addMessage(null, ExtValUtils.createFacesMessage(FacesMessage.SEVERITY_WARN, message, message));
- }
-
- if(LOGGER.isWarnEnabled())
- {
- LOGGER.warn(message);
- }
- }
-
}
Modified: myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java Sun Nov 29 13:47:40 2009
@@ -20,6 +20,7 @@
import org.apache.commons.logging.Log;
import org.apache.myfaces.extensions.validator.beanval.ExtValBeanValidationContext;
+import org.apache.myfaces.extensions.validator.beanval.payload.ViolationSeverity;
import org.apache.myfaces.extensions.validator.beanval.annotation.BeanValidation;
import org.apache.myfaces.extensions.validator.beanval.annotation.ModelValidation;
import org.apache.myfaces.extensions.validator.beanval.annotation.extractor.DefaultGroupControllerScanningExtractor;
@@ -562,15 +563,17 @@
{
for (Class<? extends Payload> payload : violation.getConstraintDescriptor().getPayload())
{
- if (BeanValidationUtils.getWarnClass().isAssignableFrom(payload))
+ if (ExtValUtils.getValidationParameterClassFor(ViolationSeverity.Warn.class).isAssignableFrom(payload))
{
return FacesMessage.SEVERITY_WARN;
}
- else if (BeanValidationUtils.getInfoClass().isAssignableFrom(payload))
+ else if (ExtValUtils
+ .getValidationParameterClassFor(ViolationSeverity.Info.class).isAssignableFrom(payload))
{
return FacesMessage.SEVERITY_INFO;
}
- else if (BeanValidationUtils.getFatalClass().isAssignableFrom(payload))
+ else if (ExtValUtils
+ .getValidationParameterClassFor(ViolationSeverity.Fatal.class).isAssignableFrom(payload))
{
return FacesMessage.SEVERITY_FATAL;
}
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/AbstractValidationParameterAwareTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/AbstractValidationParameterAwareTransformer.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/AbstractValidationParameterAwareTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/AbstractValidationParameterAwareTransformer.java Sun Nov 29 13:47:40 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.ViolationSeverity;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
@@ -67,7 +68,7 @@
{
List<FacesMessage.Severity> result = ExtValUtils.getValidationParameterExtractor()
.extract(metaDataEntry.getValue(Annotation.class),
- ExtValUtils.getViolationSeverityKey(),
+ ExtValUtils.getValidationParameterClassFor(ViolationSeverity.class),
FacesMessage.Severity.class);
if (result != null && !result.isEmpty())
Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java?rev=885228&r1=885227&r2=885228&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java Sun Nov 29 13:47:40 2009
@@ -24,6 +24,7 @@
import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
+import org.apache.myfaces.extensions.validator.core.validation.parameter.DisableClientSideValidation;
import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.extensions.validator.util.PropertyValidationUtils;
@@ -101,7 +102,8 @@
if(!(entry.getValue() instanceof Annotation &&
ExtValUtils.getValidationParameterExtractor()
.extract(entry.getValue(Annotation.class),
- ExtValUtils.getDisableClientSideValidationKey())
+ ExtValUtils
+ .getValidationParameterClassFor(DisableClientSideValidation.class))
.iterator().hasNext()))
{
results.putAll(metaDataTransformer.convertMetaData(entry));