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/15 19:09:30 UTC
svn commit: r825569 - in
/myfaces/extensions/validator/branches/branch_for_jsf_1_1:
component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/
component-support/trinidad-support/src/main/jav...
Author: gpetracek
Date: Thu Oct 15 17:09:29 2009
New Revision: 825569
URL: http://svn.apache.org/viewvc?rev=825569&view=rev
Log:
EXTVAL-65 interceptors and initializer
Added:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java
Modified:
myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.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/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrder.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrderComparator.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/ComponentInitializer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultModuleValidationStrategyToMsgResolverNameMapper.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/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java
myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.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/initializer/component/TrinidadComponentInitializer.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/TrinidadComponentInitializer.java Thu Oct 15 17:09:29 2009
@@ -19,6 +19,7 @@
package org.apache.myfaces.extensions.validator.trinidad.initializer.component;
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
+import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.ToDo;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -37,6 +38,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrder(300)
@UsageInformation(UsageCategory.INTERNAL)
public class TrinidadComponentInitializer implements ComponentInitializer
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.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/initializer/component/ValidatorInitializer.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/initializer/component/ValidatorInitializer.java Thu Oct 15 17:09:29 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+import org.apache.myfaces.extensions.validator.core.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.internal.ToDo;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -34,6 +35,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrder(300)
@UsageInformation(value = UsageCategory.INTERNAL)
@ToDo(value = Priority.LOW, description = "impl. trinidad e-mail validator")
class ValidatorInitializer implements ComponentInitializer
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=825569&r1=825568&r2=825569&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 Thu Oct 15 17:09:29 2009
@@ -22,6 +22,7 @@
import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
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;
@@ -32,6 +33,7 @@
* @author Gerhard Petracek
* @since x.x.3
*/
+@InvocationOrder(300)
public class TrinidadMetaDataExtractionInterceptor implements MetaDataExtractionInterceptor
{
public void afterExtracting(PropertyInformation propertyInformation)
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=825569&r1=825568&r2=825569&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 Thu Oct 15 17:09:29 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.InvocationOrder;
import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
import org.apache.myfaces.trinidad.context.RequestContext;
@@ -38,6 +39,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrder(300)
@UsageInformation(UsageCategory.INTERNAL)
public class TrinidadValidationExceptionInterceptor implements ValidationExceptionInterceptor
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.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/ExtValContext.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java Thu Oct 15 17:09:29 2009
@@ -18,28 +18,30 @@
*/
package org.apache.myfaces.extensions.validator.core;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.extensions.validator.core.factory.DefaultFactoryFinder;
+import org.apache.myfaces.extensions.validator.core.factory.FactoryFinder;
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfiguration;
-import org.apache.myfaces.extensions.validator.core.interceptor.RendererInterceptor;
-import org.apache.myfaces.extensions.validator.core.interceptor.ValidationExceptionInterceptor;
+import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
import org.apache.myfaces.extensions.validator.core.interceptor.MetaDataExtractionInterceptor;
import org.apache.myfaces.extensions.validator.core.interceptor.PropertyValidationInterceptor;
+import org.apache.myfaces.extensions.validator.core.interceptor.RendererInterceptor;
+import org.apache.myfaces.extensions.validator.core.interceptor.ValidationExceptionInterceptor;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.core.recorder.ProcessedInformationRecorder;
-import org.apache.myfaces.extensions.validator.core.factory.FactoryFinder;
-import org.apache.myfaces.extensions.validator.core.factory.DefaultFactoryFinder;
-import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
import org.apache.myfaces.extensions.validator.core.validation.SkipValidationEvaluator;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
-import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.util.ClassUtils;
import org.apache.myfaces.extensions.validator.util.ExtValUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import javax.faces.context.FacesContext;
import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -60,242 +62,59 @@
private Map<String, RendererInterceptor> rendererInterceptors = new HashMap<String, RendererInterceptor>();
private List<String> deniedInterceptors = new ArrayList<String>();
private List<ProcessedInformationRecorder> processedInformationRecorders =
- new ArrayList<ProcessedInformationRecorder>();
+ new ArrayList<ProcessedInformationRecorder>();
private SkipValidationEvaluator skipValidationEvaluator;
private Map<String, Object> globalProperties = new HashMap<String, Object>();
private Map<StaticConfigurationNames, List<StaticConfiguration<String, String>>> staticConfigMap
- = new HashMap<StaticConfigurationNames, List<StaticConfiguration<String, String>>>();
-
- //execution order support
- private List<MetaDataExtractionInterceptor> metaDataExtractionInterceptors;
- private List<ValidationExceptionInterceptor> validationExceptionInterceptors;
- private List<PropertyValidationInterceptor> propertyValidationInterceptors;
- private List<ComponentInitializer> componentInitializers;
- private Map<Class, List<PropertyValidationInterceptor>> moduleSpecificPropertyValidationInterceptors;
-
- private void lazyInitComponentInitializers()
- {
- if(this.componentInitializers != null)
- {
- return;
- }
-
- this.componentInitializers = new ArrayList<ComponentInitializer>();
- List<String> componentInitializerClassNames = new ArrayList<String>();
- componentInitializerClassNames
- .add(WebXmlParameter.CUSTOM_COMPONENT_INITIALIZER);
- componentInitializerClassNames
- .add(ExtValContext.getContext().getInformationProviderBean().get(CustomInformation.COMPONENT_INITIALIZER));
-
- ComponentInitializer componentInitializer;
- for (String componentInitializerName : componentInitializerClassNames)
- {
- componentInitializer =
- (ComponentInitializer) ClassUtils.tryToInstantiateClassForName(componentInitializerName);
-
- if (componentInitializer != null)
- {
- componentInitializers.add(componentInitializer);
-
- if(logger.isTraceEnabled())
- {
- logger.trace(componentInitializer.getClass().getName() + " added");
- }
- }
- }
- }
-
- private void lazyInitValidationExceptionInterceptors()
- {
- if(this.validationExceptionInterceptors != null)
- {
- return;
- }
-
- this.validationExceptionInterceptors = new ArrayList<ValidationExceptionInterceptor>();
- List<String> validationExceptionInterceptorClassNames = new ArrayList<String>();
-
- validationExceptionInterceptorClassNames
- .add(WebXmlParameter.CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR);
- validationExceptionInterceptorClassNames
- .add(ExtValContext.getContext().getInformationProviderBean().get(
- CustomInformation.VALIDATION_EXCEPTION_INTERCEPTOR));
-
- ValidationExceptionInterceptor validationExceptionInterceptor;
- for (String validationExceptionInterceptorName : validationExceptionInterceptorClassNames)
- {
- validationExceptionInterceptor =
- (ValidationExceptionInterceptor)
- ClassUtils.tryToInstantiateClassForName(validationExceptionInterceptorName);
-
- if (validationExceptionInterceptor != null)
- {
- validationExceptionInterceptors.add(validationExceptionInterceptor);
-
- if(logger.isTraceEnabled())
- {
- logger.trace(validationExceptionInterceptor.getClass().getName() + " added");
- }
- }
- }
- }
-
- private void lazyInitPropertyValidationInterceptors()
- {
- if(this.propertyValidationInterceptors != null)
- {
- return;
- }
-
- this.propertyValidationInterceptors = new ArrayList<PropertyValidationInterceptor>();
- this.moduleSpecificPropertyValidationInterceptors = new HashMap<Class, List<PropertyValidationInterceptor>>();
-
- List<String> validationInterceptorClassNames = new ArrayList<String>();
-
- validationInterceptorClassNames
- .add(WebXmlParameter.CUSTOM_PROPERTY_VALIDATION_INTERCEPTOR);
- validationInterceptorClassNames
- .add(ExtValContext.getContext().getInformationProviderBean().get(
- CustomInformation.PROPERTY_VALIDATION_INTERCEPTOR));
-
- PropertyValidationInterceptor propertyValidationInterceptor;
- for (String validationInterceptorName : validationInterceptorClassNames)
- {
- propertyValidationInterceptor =
- (PropertyValidationInterceptor)
- ClassUtils.tryToInstantiateClassForName(validationInterceptorName);
-
- if (propertyValidationInterceptor != null)
- {
- if(propertyValidationInterceptor instanceof ValidationModuleAware)
- {
- addPropertyValidationInterceptorForModules(propertyValidationInterceptor);
- }
- else
- {
- addPropertyValidationInterceptorForModule(null, propertyValidationInterceptor);
- }
- }
- }
- }
-
- private void addPropertyValidationInterceptorForModules(PropertyValidationInterceptor propertyValidationInterceptor)
- {
- Class moduleKey;
- for(String currentModuleKey : ((ValidationModuleAware)propertyValidationInterceptor).getModuleKeys())
- {
- moduleKey = ClassUtils.tryToLoadClassForName(currentModuleKey);
-
- if(moduleKey == null)
- {
- continue;
- }
-
- addPropertyValidationInterceptorForModule(moduleKey, propertyValidationInterceptor);
- }
- }
-
- private void addPropertyValidationInterceptorForModule(
- Class moduleKey, PropertyValidationInterceptor propertyValidationInterceptor)
- {
- if(moduleKey == null)
- {
- propertyValidationInterceptors.add(propertyValidationInterceptor);
-
- if(logger.isTraceEnabled())
- {
- logger.trace(propertyValidationInterceptor.getClass().getName() + " added");
- }
- }
- else
- {
- List<PropertyValidationInterceptor> propertyValidationInterceptorList;
- if(this.moduleSpecificPropertyValidationInterceptors.containsKey(moduleKey))
- {
- propertyValidationInterceptorList = this.moduleSpecificPropertyValidationInterceptors.get(moduleKey);
- }
- else
- {
- propertyValidationInterceptorList = new ArrayList<PropertyValidationInterceptor>();
- this.moduleSpecificPropertyValidationInterceptors.put(moduleKey, propertyValidationInterceptorList);
- }
- propertyValidationInterceptorList.add(propertyValidationInterceptor);
+ = new HashMap<StaticConfigurationNames, List<StaticConfiguration<String, String>>>();
- if(logger.isTraceEnabled())
- {
- logger.trace(propertyValidationInterceptor.getClass().getName() + " added for " + moduleKey.getName());
- }
- }
- }
+ private ExtValContextInternals contextHelper;
+ private ExtValContextInvocationOrderAwareInternals invocationOrderAwareContextHelper;
- private void lazyInitMetaDataExtractionInterceptors()
+ private ExtValContext()
{
- if(this.metaDataExtractionInterceptors != null)
- {
- return;
- }
-
- this.metaDataExtractionInterceptors = new ArrayList<MetaDataExtractionInterceptor>();
-
- List<String> metaDataExtractionInterceptorClassNames = new ArrayList<String>();
-
- metaDataExtractionInterceptorClassNames
- .add(WebXmlParameter.CUSTOM_META_DATA_EXTRACTION_INTERCEPTOR);
- metaDataExtractionInterceptorClassNames
- .add(ExtValContext.getContext().getInformationProviderBean().get(
- CustomInformation.META_DATA_EXTRACTION_INTERCEPTOR));
-
- MetaDataExtractionInterceptor metaDataExtractionInterceptor;
- for (String validationExceptionInterceptorName : metaDataExtractionInterceptorClassNames)
- {
- metaDataExtractionInterceptor =
- (MetaDataExtractionInterceptor)
- ClassUtils.tryToInstantiateClassForName(validationExceptionInterceptorName);
-
- if (metaDataExtractionInterceptor != null)
- {
- this.metaDataExtractionInterceptors.add(metaDataExtractionInterceptor);
-
- if(logger.isTraceEnabled())
- {
- logger.trace(metaDataExtractionInterceptor.getClass().getName() + " added");
- }
- }
- }
+ this.contextHelper = new ExtValContextInternals();
+ this.invocationOrderAwareContextHelper = new ExtValContextInvocationOrderAwareInternals(this.contextHelper);
}
public static ExtValContext getContext()
{
- if(extValContext == null)
+ if (extValContext == null)
{
extValContext = new ExtValContext();
Object customExtValContext = ExtValUtils.getELHelper().getBean(
extValContext.getInformationProviderBean().get(CustomInformation.EXTVAL_CONTEXT));
- if(customExtValContext instanceof ExtValContext)
+ if (customExtValContext instanceof ExtValContext)
{
- extValContext = (ExtValContext)customExtValContext;
+ extValContext = (ExtValContext) customExtValContext;
}
}
return extValContext;
}
+ /*
+ * FactoryFinder
+ */
public FactoryFinder getFactoryFinder()
{
- return factoryFinder;
+ return this.factoryFinder;
}
public void setFactoryFinder(FactoryFinder factoryFinder)
{
- if(factoryFinder != null)
+ if (factoryFinder != null)
{
this.factoryFinder = factoryFinder;
}
}
+ /*
+ * SkipValidationEvaluator
+ */
public void setSkipValidationEvaluator(SkipValidationEvaluator skipValidationEvaluator)
{
setSkipValidationEvaluator(skipValidationEvaluator, true);
@@ -303,9 +122,9 @@
public void setSkipValidationEvaluator(SkipValidationEvaluator skipValidationEvaluator, boolean forceOverride)
{
- if(this.skipValidationEvaluator == null || forceOverride)
+ if (this.skipValidationEvaluator == null || forceOverride)
{
- if(this.logger.isInfoEnabled())
+ if (this.logger.isInfoEnabled())
{
this.logger.info(skipValidationEvaluator != null ?
skipValidationEvaluator.getClass() : "no" + " is used");
@@ -316,7 +135,7 @@
public SkipValidationEvaluator getSkipValidationEvaluator()
{
- if(this.skipValidationEvaluator == null)
+ if (this.skipValidationEvaluator == null)
{
return new SkipValidationEvaluator()
{
@@ -331,21 +150,24 @@
return this.skipValidationEvaluator;
}
+ /*
+ * RendererInterceptors
+ */
public List<RendererInterceptor> getRendererInterceptors()
{
- return new ArrayList<RendererInterceptor>(rendererInterceptors.values());
+ return new ArrayList<RendererInterceptor>(this.rendererInterceptors.values());
}
public boolean registerRendererInterceptor(RendererInterceptor rendererInterceptor)
{
synchronized (ExtValContext.class)
{
- if (deniedInterceptors.contains(rendererInterceptor.getInterceptorId()))
+ if (this.deniedInterceptors.contains(rendererInterceptor.getInterceptorId()))
{
return false;
}
- rendererInterceptors.put(rendererInterceptor.getInterceptorId(), rendererInterceptor);
+ this.rendererInterceptors.put(rendererInterceptor.getInterceptorId(), rendererInterceptor);
}
return true;
}
@@ -356,7 +178,7 @@
synchronized (ExtValContext.class)
{
- rendererInterceptors.remove(rendererInterceptor.getInterceptorId());
+ this.rendererInterceptors.remove(rendererInterceptor.getInterceptorId());
}
}
@@ -367,97 +189,88 @@
synchronized (ExtValContext.class)
{
- if(!deniedInterceptors.contains(rendererInterceptor.getInterceptorId()))
+ if (!this.deniedInterceptors.contains(rendererInterceptor.getInterceptorId()))
{
- deniedInterceptors.add(rendererInterceptor.getInterceptorId());
+ this.deniedInterceptors.add(rendererInterceptor.getInterceptorId());
}
}
deregisterRendererInterceptor(rendererInterceptorClass);
}
+ /*
+ * ComponentInitializers
+ */
public void addComponentInitializer(ComponentInitializer componentInitializer)
{
- lazyInitComponentInitializers();
- this.componentInitializers.add(componentInitializer);
+ this.invocationOrderAwareContextHelper.lazyInitComponentInitializers();
+ this.invocationOrderAwareContextHelper.addComponentInitializer(componentInitializer);
}
public List<ComponentInitializer> getComponentInitializers()
{
- lazyInitComponentInitializers();
- return isComponentInitializationActivated() ? componentInitializers : new ArrayList<ComponentInitializer>();
- }
-
- private boolean isComponentInitializationActivated()
- {
- return !"true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_COMPONENT_INITIALIZATION);
+ this.invocationOrderAwareContextHelper.lazyInitComponentInitializers();
+ return this.invocationOrderAwareContextHelper.getComponentInitializers();
}
+ /*
+ * ValidationExceptionInterceptors
+ */
public void addValidationExceptionInterceptor(ValidationExceptionInterceptor validationExceptionInterceptor)
{
- lazyInitValidationExceptionInterceptors();
- this.validationExceptionInterceptors.add(validationExceptionInterceptor);
+ this.invocationOrderAwareContextHelper.lazyInitValidationExceptionInterceptors();
+ this.invocationOrderAwareContextHelper.addValidationExceptionInterceptor(validationExceptionInterceptor);
}
public List<ValidationExceptionInterceptor> getValidationExceptionInterceptors()
{
- lazyInitValidationExceptionInterceptors();
- return this.validationExceptionInterceptors;
+ this.invocationOrderAwareContextHelper.lazyInitValidationExceptionInterceptors();
+ return this.invocationOrderAwareContextHelper.getValidationExceptionInterceptors();
}
+ /*
+ * PropertyValidationInterceptors
+ */
public void addPropertyValidationInterceptor(PropertyValidationInterceptor propertyValidationInterceptor)
{
- lazyInitPropertyValidationInterceptors();
-
- if(propertyValidationInterceptor instanceof ValidationModuleAware)
- {
- addPropertyValidationInterceptorForModules(propertyValidationInterceptor);
- }
- else
- {
- addPropertyValidationInterceptorForModule(null, propertyValidationInterceptor);
- }
+ this.invocationOrderAwareContextHelper.lazyInitPropertyValidationInterceptors();
+ this.invocationOrderAwareContextHelper.addPropertyValidationInterceptor(propertyValidationInterceptor);
}
+ @Deprecated
+ @ToDo(value = Priority.HIGH, description = "not used")
public List<PropertyValidationInterceptor> getPropertyValidationInterceptors()
{
- lazyInitPropertyValidationInterceptors();
- return this.propertyValidationInterceptors;
+ this.invocationOrderAwareContextHelper.lazyInitPropertyValidationInterceptors();
+ return this.invocationOrderAwareContextHelper.getPropertyValidationInterceptors();
}
public List<PropertyValidationInterceptor> getPropertyValidationInterceptorsFor(Class moduleKey)
{
- List<PropertyValidationInterceptor> generalInterceptors = getPropertyValidationInterceptors();
-
- if(moduleKey == null || !this.moduleSpecificPropertyValidationInterceptors.containsKey(moduleKey))
- {
- return generalInterceptors;
- }
-
- List<PropertyValidationInterceptor> moduleSpecificInterceptors =
- this.moduleSpecificPropertyValidationInterceptors.get(moduleKey);
-
- List<PropertyValidationInterceptor> result = new ArrayList<PropertyValidationInterceptor>();
- result.addAll(generalInterceptors);
- result.addAll(moduleSpecificInterceptors);
-
- return result;
+ this.invocationOrderAwareContextHelper.lazyInitPropertyValidationInterceptors();
+ return this.invocationOrderAwareContextHelper.getPropertyValidationInterceptorsFor(moduleKey);
}
+ /*
+ * MetaDataExtractionInterceptors
+ */
public void addMetaDataExtractionInterceptor(MetaDataExtractionInterceptor metaDataExtractionInterceptor)
{
- lazyInitMetaDataExtractionInterceptors();
- metaDataExtractionInterceptors.add(metaDataExtractionInterceptor);
+ this.invocationOrderAwareContextHelper.lazyInitMetaDataExtractionInterceptors();
+ this.invocationOrderAwareContextHelper.addMetaDataExtractionInterceptor(metaDataExtractionInterceptor);
}
public List<MetaDataExtractionInterceptor> getMetaDataExtractionInterceptors()
{
- lazyInitMetaDataExtractionInterceptors();
- return metaDataExtractionInterceptors;
+ this.invocationOrderAwareContextHelper.lazyInitMetaDataExtractionInterceptors();
+ return this.invocationOrderAwareContextHelper.getMetaDataExtractionInterceptors();
}
+ /*
+ * ProcessedInformationRecorders
+ */
public List<ProcessedInformationRecorder> getProcessedInformationRecorders()
{
- return processedInformationRecorders;
+ return this.processedInformationRecorders;
}
public void addProcessedInformationRecorder(ProcessedInformationRecorder processedInformationRecorder)
@@ -465,62 +278,20 @@
this.processedInformationRecorders.add(processedInformationRecorder);
}
+ /*
+ * InformationProviderBean
+ */
public InformationProviderBean getInformationProviderBean()
{
- Map applicationMap = FacesContext.getCurrentInstance().getExternalContext().getApplicationMap();
- InformationProviderBean bean = (InformationProviderBean) applicationMap.get(InformationProviderBean.BEAN_NAME);
-
- if (bean == null)
- {
- return initInformationProviderBean(applicationMap);
- }
- return bean;
- }
-
- @SuppressWarnings({"unchecked"})
- private InformationProviderBean initInformationProviderBean(Map applicationMap)
- {
- List<String> informationProviderBeanClassNames = new ArrayList<String>();
-
- informationProviderBeanClassNames.add(WebXmlParameter.CUSTOM_INFORMATION_PROVIDER_BEAN);
- informationProviderBeanClassNames.add(InformationProviderBean.CUSTOM_BEAN);
-
- InformationProviderBean informationProviderBean;
- for (String className : informationProviderBeanClassNames)
- {
- informationProviderBean = (InformationProviderBean) ClassUtils.tryToInstantiateClassForName(className);
-
- if (informationProviderBean != null)
- {
- applicationMap.put(InformationProviderBean.BEAN_NAME, informationProviderBean);
- return informationProviderBean;
- }
- }
-
- tryToInitCustomConfiguredInformationProviderBeanClassName(applicationMap);
-
- if(applicationMap.containsKey(InformationProviderBean.BEAN_NAME))
- {
- return (InformationProviderBean)applicationMap.get(InformationProviderBean.BEAN_NAME);
- }
- return new InformationProviderBean();
- }
-
- @SuppressWarnings({"unchecked"})
- private void tryToInitCustomConfiguredInformationProviderBeanClassName(Map applicationMap)
- {
- InformationProviderBean bean = (InformationProviderBean) ExtValUtils.getELHelper()
- .getBean(InformationProviderBean.CUSTOM_BEAN.replace(".", "_"));
-
- if(bean != null)
- {
- applicationMap.put(InformationProviderBean.BEAN_NAME, bean);
- }
+ return this.contextHelper.getInformationProviderBean();
}
+ /*
+ * StaticConfiguration
+ */
public List<StaticConfiguration<String, String>> getStaticConfiguration(StaticConfigurationNames name)
{
- if(!this.staticConfigMap.containsKey(name))
+ if (!this.staticConfigMap.containsKey(name))
{
List<StaticConfiguration<String, String>> staticConfigList =
new ArrayList<StaticConfiguration<String, String>>();
@@ -534,7 +305,7 @@
synchronized (this)
{
List<StaticConfiguration<String, String>> staticConfigList;
- if(!this.staticConfigMap.containsKey(name))
+ if (!this.staticConfigMap.containsKey(name))
{
staticConfigList = new ArrayList<StaticConfiguration<String, String>>();
this.staticConfigMap.put(name, staticConfigList);
@@ -543,21 +314,24 @@
}
}
+ /*
+ * Global properties
+ */
public boolean addGlobalProperty(String name, Object value)
{
- return addGlobalProperty(name , value, true);
+ return addGlobalProperty(name, value, true);
}
public boolean addGlobalProperty(String name, Object value, boolean forceOverride)
{
- if(this.globalProperties.containsKey(name))
+ if (this.globalProperties.containsKey(name))
{
- if(!forceOverride)
+ if (!forceOverride)
{
return false;
}
- if(this.logger.isInfoEnabled())
+ if (this.logger.isInfoEnabled())
{
logger.info("override global property '" + name + "'");
}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.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/ExtValContextInternals.java?rev=825569&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInternals.java Thu Oct 15 17:09:29 2009
@@ -0,0 +1,95 @@
+/*
+ * 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;
+
+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 org.apache.myfaces.extensions.validator.util.ExtValUtils;
+
+import javax.faces.context.FacesContext;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+class ExtValContextInternals
+{
+ boolean isComponentInitializationActivated()
+ {
+ return !"true".equalsIgnoreCase(WebXmlParameter.DEACTIVATE_COMPONENT_INITIALIZATION);
+ }
+
+ @SuppressWarnings({"unchecked"})
+ InformationProviderBean initInformationProviderBean(Map applicationMap)
+ {
+ List<String> informationProviderBeanClassNames = new ArrayList<String>();
+
+ informationProviderBeanClassNames.add(WebXmlParameter.CUSTOM_INFORMATION_PROVIDER_BEAN);
+ informationProviderBeanClassNames.add(InformationProviderBean.CUSTOM_BEAN);
+
+ InformationProviderBean informationProviderBean;
+ for (String className : informationProviderBeanClassNames)
+ {
+ informationProviderBean = (InformationProviderBean) ClassUtils.tryToInstantiateClassForName(className);
+
+ if (informationProviderBean != null)
+ {
+ applicationMap.put(InformationProviderBean.BEAN_NAME, informationProviderBean);
+ return informationProviderBean;
+ }
+ }
+
+ tryToInitCustomConfiguredInformationProviderBeanClassName(applicationMap);
+
+ if (applicationMap.containsKey(InformationProviderBean.BEAN_NAME))
+ {
+ return (InformationProviderBean) applicationMap.get(InformationProviderBean.BEAN_NAME);
+ }
+ return new InformationProviderBean();
+ }
+
+ @SuppressWarnings({"unchecked"})
+ void tryToInitCustomConfiguredInformationProviderBeanClassName(Map applicationMap)
+ {
+ InformationProviderBean bean = (InformationProviderBean) ExtValUtils.getELHelper()
+ .getBean(InformationProviderBean.CUSTOM_BEAN.replace(".", "_"));
+
+ if (bean != null)
+ {
+ applicationMap.put(InformationProviderBean.BEAN_NAME, bean);
+ }
+ }
+
+ InformationProviderBean getInformationProviderBean()
+ {
+ Map applicationMap = FacesContext.getCurrentInstance().getExternalContext().getApplicationMap();
+ InformationProviderBean bean = (InformationProviderBean) applicationMap.get(InformationProviderBean.BEAN_NAME);
+
+ if (bean == null)
+ {
+ return initInformationProviderBean(applicationMap);
+ }
+ return bean;
+ }
+}
Added: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.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/ExtValContextInvocationOrderAwareInternals.java?rev=825569&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java (added)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContextInvocationOrderAwareInternals.java Thu Oct 15 17:09:29 2009
@@ -0,0 +1,395 @@
+/*
+ * 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;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
+import org.apache.myfaces.extensions.validator.core.interceptor.MetaDataExtractionInterceptor;
+import org.apache.myfaces.extensions.validator.core.interceptor.PropertyValidationInterceptor;
+import org.apache.myfaces.extensions.validator.core.interceptor.ValidationExceptionInterceptor;
+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.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Collections;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+class ExtValContextInvocationOrderAwareInternals
+{
+ private final Log logger = LogFactory.getLog(getClass());
+
+ private List<MetaDataExtractionInterceptor> metaDataExtractionInterceptors = null;
+ private List<ValidationExceptionInterceptor> validationExceptionInterceptors = null;
+ private List<PropertyValidationInterceptor> propertyValidationInterceptors = null;
+ private Map<Class, List<PropertyValidationInterceptor>> moduleSpecificPropertyValidationInterceptors = null;
+ private List<ComponentInitializer> componentInitializers = null;
+
+ private ExtValContextInternals contextHelper;
+
+ ExtValContextInvocationOrderAwareInternals(ExtValContextInternals contextHelper)
+ {
+ this.contextHelper = contextHelper;
+ }
+
+ /*
+ * ComponentInitializers
+ */
+ void addComponentInitializer(ComponentInitializer componentInitializer)
+ {
+ this.componentInitializers.add(componentInitializer);
+ sortComponentInitializers();
+ }
+
+ List<ComponentInitializer> getComponentInitializers()
+ {
+ return this.contextHelper.isComponentInitializationActivated() ?
+ this.componentInitializers : new ArrayList<ComponentInitializer>();
+ }
+
+ /*
+ * ValidationExceptionInterceptors
+ */
+ void addValidationExceptionInterceptor(ValidationExceptionInterceptor validationExceptionInterceptor)
+ {
+ this.validationExceptionInterceptors.add(validationExceptionInterceptor);
+ sortValidationExceptionInterceptors();
+ }
+
+ List<ValidationExceptionInterceptor> getValidationExceptionInterceptors()
+ {
+ return this.validationExceptionInterceptors;
+ }
+
+ /*
+ * PropertyValidationInterceptors
+ */
+ void addPropertyValidationInterceptor(PropertyValidationInterceptor propertyValidationInterceptor)
+ {
+ if (propertyValidationInterceptor instanceof ValidationModuleAware)
+ {
+ addPropertyValidationInterceptorForModules(propertyValidationInterceptor,
+ this.propertyValidationInterceptors, this.moduleSpecificPropertyValidationInterceptors);
+ }
+ else
+ {
+ addPropertyValidationInterceptorForModule(null, propertyValidationInterceptor,
+ this.propertyValidationInterceptors, this.moduleSpecificPropertyValidationInterceptors);
+ }
+
+ sortPropertyValidationInterceptors();
+ }
+
+ List<PropertyValidationInterceptor> getPropertyValidationInterceptors()
+ {
+ return this.propertyValidationInterceptors;
+ }
+
+ List<PropertyValidationInterceptor> getPropertyValidationInterceptorsFor(Class moduleKey)
+ {
+ List<PropertyValidationInterceptor> generalInterceptors = getPropertyValidationInterceptors();
+
+ if (moduleKey == null || !this.moduleSpecificPropertyValidationInterceptors.containsKey(moduleKey))
+ {
+ return generalInterceptors;
+ }
+
+ List<PropertyValidationInterceptor> moduleSpecificInterceptors =
+ this.moduleSpecificPropertyValidationInterceptors.get(moduleKey);
+
+ List<PropertyValidationInterceptor> result = new ArrayList<PropertyValidationInterceptor>();
+ result.addAll(generalInterceptors);
+ result.addAll(moduleSpecificInterceptors);
+
+ sortPropertyValidationInterceptors(result);
+ return result;
+ }
+
+ private void addPropertyValidationInterceptorForModules(PropertyValidationInterceptor propertyValidationInterceptor,
+ List<PropertyValidationInterceptor> propertyValidationInterceptors,
+ Map<Class, List<PropertyValidationInterceptor>>
+ moduleSpecificPropertyValidationInterceptors)
+ {
+ Class moduleKey;
+ for (String currentModuleKey : ((ValidationModuleAware) propertyValidationInterceptor).getModuleKeys())
+ {
+ moduleKey = ClassUtils.tryToLoadClassForName(currentModuleKey);
+
+ if (moduleKey == null)
+ {
+ continue;
+ }
+
+ addPropertyValidationInterceptorForModule(moduleKey,
+ propertyValidationInterceptor,
+ propertyValidationInterceptors,
+ moduleSpecificPropertyValidationInterceptors);
+ }
+ }
+
+ private void addPropertyValidationInterceptorForModule(Class moduleKey,
+ PropertyValidationInterceptor propertyValidationInterceptor,
+ List<PropertyValidationInterceptor> propertyValidationInterceptors,
+ Map<Class, List<PropertyValidationInterceptor>>
+ moduleSpecificPropertyValidationInterceptors)
+ {
+ if (moduleKey == null)
+ {
+ propertyValidationInterceptors.add(propertyValidationInterceptor);
+
+ if (logger.isTraceEnabled())
+ {
+ logger.trace(propertyValidationInterceptor.getClass().getName() + " added");
+ }
+ }
+ else
+ {
+ List<PropertyValidationInterceptor> propertyValidationInterceptorList;
+ if (moduleSpecificPropertyValidationInterceptors.containsKey(moduleKey))
+ {
+ propertyValidationInterceptorList = moduleSpecificPropertyValidationInterceptors.get(moduleKey);
+ }
+ else
+ {
+ propertyValidationInterceptorList = new ArrayList<PropertyValidationInterceptor>();
+ moduleSpecificPropertyValidationInterceptors.put(moduleKey, propertyValidationInterceptorList);
+ }
+ propertyValidationInterceptorList.add(propertyValidationInterceptor);
+
+ sortModuleSpecificPropertyValidationInterceptors(propertyValidationInterceptorList);
+
+ if (logger.isTraceEnabled())
+ {
+ logger.trace(propertyValidationInterceptor.getClass().getName() + " added for " + moduleKey.getName());
+ }
+ }
+ }
+
+ /*
+ * MetaDataExtractionInterceptors
+ */
+ void addMetaDataExtractionInterceptor(MetaDataExtractionInterceptor metaDataExtractionInterceptor)
+ {
+ this.metaDataExtractionInterceptors.add(metaDataExtractionInterceptor);
+ sortMetaDataExtractionInterceptors();
+ }
+
+ List<MetaDataExtractionInterceptor> getMetaDataExtractionInterceptors()
+ {
+ return this.metaDataExtractionInterceptors;
+ }
+
+ /*
+ * init
+ */
+
+ void lazyInitValidationExceptionInterceptors()
+ {
+ if (validationExceptionInterceptors != null)
+ {
+ return;
+ }
+
+ validationExceptionInterceptors = new ArrayList<ValidationExceptionInterceptor>();
+ List<String> validationExceptionInterceptorClassNames = new ArrayList<String>();
+
+ validationExceptionInterceptorClassNames
+ .add(WebXmlParameter.CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR);
+ validationExceptionInterceptorClassNames
+ .add(this.contextHelper.getInformationProviderBean().get(
+ CustomInformation.VALIDATION_EXCEPTION_INTERCEPTOR));
+
+ ValidationExceptionInterceptor validationExceptionInterceptor;
+ for (String validationExceptionInterceptorName : validationExceptionInterceptorClassNames)
+ {
+ validationExceptionInterceptor =
+ (ValidationExceptionInterceptor)
+ ClassUtils.tryToInstantiateClassForName(validationExceptionInterceptorName);
+
+ if (validationExceptionInterceptor != null)
+ {
+ validationExceptionInterceptors.add(validationExceptionInterceptor);
+
+ if (logger.isTraceEnabled())
+ {
+ logger.trace(validationExceptionInterceptor.getClass().getName() + " added");
+ }
+ }
+ }
+ }
+
+ void lazyInitMetaDataExtractionInterceptors()
+ {
+ if (metaDataExtractionInterceptors != null)
+ {
+ return;
+ }
+
+ metaDataExtractionInterceptors = new ArrayList<MetaDataExtractionInterceptor>();
+
+ List<String> metaDataExtractionInterceptorClassNames = new ArrayList<String>();
+
+ metaDataExtractionInterceptorClassNames
+ .add(WebXmlParameter.CUSTOM_META_DATA_EXTRACTION_INTERCEPTOR);
+ metaDataExtractionInterceptorClassNames
+ .add(this.contextHelper.getInformationProviderBean().get(
+ CustomInformation.META_DATA_EXTRACTION_INTERCEPTOR));
+
+ MetaDataExtractionInterceptor metaDataExtractionInterceptor;
+ for (String validationExceptionInterceptorName : metaDataExtractionInterceptorClassNames)
+ {
+ metaDataExtractionInterceptor =
+ (MetaDataExtractionInterceptor)
+ ClassUtils.tryToInstantiateClassForName(validationExceptionInterceptorName);
+
+ if (metaDataExtractionInterceptor != null)
+ {
+ metaDataExtractionInterceptors.add(metaDataExtractionInterceptor);
+
+ if (logger.isTraceEnabled())
+ {
+ logger.trace(metaDataExtractionInterceptor.getClass().getName() + " added");
+ }
+ }
+ }
+ }
+
+ void lazyInitComponentInitializers()
+ {
+ if (componentInitializers != null)
+ {
+ return;
+ }
+
+ componentInitializers = new ArrayList<ComponentInitializer>();
+ List<String> componentInitializerClassNames = new ArrayList<String>();
+ componentInitializerClassNames
+ .add(WebXmlParameter.CUSTOM_COMPONENT_INITIALIZER);
+ componentInitializerClassNames
+ .add(this.contextHelper.getInformationProviderBean().get(CustomInformation.COMPONENT_INITIALIZER));
+
+ ComponentInitializer componentInitializer;
+ for (String componentInitializerName : componentInitializerClassNames)
+ {
+ componentInitializer =
+ (ComponentInitializer) ClassUtils.tryToInstantiateClassForName(componentInitializerName);
+
+ if (componentInitializer != null)
+ {
+ componentInitializers.add(componentInitializer);
+
+ if (logger.isTraceEnabled())
+ {
+ logger.trace(componentInitializer.getClass().getName() + " added");
+ }
+ }
+ }
+ }
+
+ void lazyInitPropertyValidationInterceptors()
+ {
+ if (propertyValidationInterceptors != null)
+ {
+ return;
+ }
+
+ propertyValidationInterceptors = new ArrayList<PropertyValidationInterceptor>();
+ moduleSpecificPropertyValidationInterceptors = new HashMap<Class, List<PropertyValidationInterceptor>>();
+
+ List<String> validationInterceptorClassNames = new ArrayList<String>();
+
+ validationInterceptorClassNames
+ .add(WebXmlParameter.CUSTOM_PROPERTY_VALIDATION_INTERCEPTOR);
+ validationInterceptorClassNames
+ .add(this.contextHelper.getInformationProviderBean().get(
+ CustomInformation.PROPERTY_VALIDATION_INTERCEPTOR));
+
+ PropertyValidationInterceptor propertyValidationInterceptor;
+ for (String validationInterceptorName : validationInterceptorClassNames)
+ {
+ propertyValidationInterceptor =
+ (PropertyValidationInterceptor)
+ ClassUtils.tryToInstantiateClassForName(validationInterceptorName);
+
+ if (propertyValidationInterceptor != null)
+ {
+ if (propertyValidationInterceptor instanceof ValidationModuleAware)
+ {
+ addPropertyValidationInterceptorForModules(propertyValidationInterceptor,
+ propertyValidationInterceptors,
+ moduleSpecificPropertyValidationInterceptors);
+ }
+ else
+ {
+ addPropertyValidationInterceptorForModule(null, propertyValidationInterceptor,
+ propertyValidationInterceptors,
+ moduleSpecificPropertyValidationInterceptors);
+ }
+ }
+ }
+ }
+
+ /*
+ * sort
+ */
+ private void sortComponentInitializers()
+ {
+ Collections.sort(this.componentInitializers, new InvocationOrderComparator<ComponentInitializer>());
+ }
+
+ private void sortPropertyValidationInterceptors(List<PropertyValidationInterceptor> result)
+ {
+ Collections.sort(result, new InvocationOrderComparator<PropertyValidationInterceptor>());
+ }
+
+ private void sortPropertyValidationInterceptors()
+ {
+ Collections.sort(this.propertyValidationInterceptors,
+ new InvocationOrderComparator<PropertyValidationInterceptor>());
+ }
+
+ private void sortValidationExceptionInterceptors()
+ {
+ Collections.sort(this.validationExceptionInterceptors,
+ new InvocationOrderComparator<ValidationExceptionInterceptor>());
+ }
+
+ private void sortModuleSpecificPropertyValidationInterceptors(
+ List<PropertyValidationInterceptor> propertyValidationInterceptorList)
+ {
+ if (propertyValidationInterceptorList != null)
+ {
+ Collections.sort(propertyValidationInterceptorList, new InvocationOrderComparator<Object>());
+ }
+ }
+
+ private void sortMetaDataExtractionInterceptors()
+ {
+ Collections.sort(this.metaDataExtractionInterceptors,
+ new InvocationOrderComparator<MetaDataExtractionInterceptor>());
+ }
+}
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrder.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/InvocationOrder.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrder.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrder.java Thu Oct 15 17:09:29 2009
@@ -30,14 +30,19 @@
/**
* allowed to use for classes which implement interfaces which have the marker @InvocationOrderSupport
*
- * suggested ranges:
+ * suggested ranges (mainly for name-mappers):
* negative values for "extreme" cases
*
* 0-49 for custom artifacts which should have the highest priority
* 50-99 for add-ons which provide artifacts which should have a higher priority than the default artifacts
- * 100-999
+ * 100-999 internal artifacts
* 1000+ for custom artifacts
*
+ * suggested ranges for artifacts like interceptors,...
+ * 1xx ... artifacts of the core
+ * 2xx ... artifacts of validation modules
+ * 3xx ... artifacts of component support modules
+ *
* a priority should be unique within one artifact-type - that means
* if a name-mapper has priority 100, it's ok that an exception-interceptor also has priority 100.
* but a 2nd name-mapper shouldn't have priority 100
@@ -52,4 +57,4 @@
* @return the priority of an artifact annotated with this annotation
*/
int value() default 1000;
-}
\ 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/InvocationOrderComparator.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/InvocationOrderComparator.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrderComparator.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InvocationOrderComparator.java Thu Oct 15 17:09:29 2009
@@ -37,7 +37,7 @@
{
return 0;
}
- return hasPriority(nm1) ? 1 : -1;
+ return hasPriority(nm1) ? -1 : 1;
}
private int isPriorityHigher(InvocationOrder priority1, InvocationOrder priority2)
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.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/factory/DefaultFactoryFinder.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java Thu Oct 15 17:09:29 2009
@@ -56,7 +56,7 @@
private static FactoryFinder factoryFinder = new DefaultFactoryFinder();
- private DefaultFactoryFinder()
+ protected DefaultFactoryFinder()
{
if(logger.isDebugEnabled())
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/ComponentInitializer.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/initializer/component/ComponentInitializer.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/ComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/ComponentInitializer.java Thu Oct 15 17:09:29 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.core.InvocationOrderSupport;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
@@ -32,6 +33,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrderSupport
@UsageInformation(UsageCategory.API)
public interface ComponentInitializer
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.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/MetaDataExtractionInterceptor.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/MetaDataExtractionInterceptor.java Thu Oct 15 17:09:29 2009
@@ -21,11 +21,13 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
+import org.apache.myfaces.extensions.validator.core.InvocationOrderSupport;
/**
* @author Gerhard Petracek
* @since 1.x.2
*/
+@InvocationOrderSupport
@UsageInformation(UsageCategory.API)
public interface MetaDataExtractionInterceptor
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.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/PropertyValidationInterceptor.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/PropertyValidationInterceptor.java Thu Oct 15 17:09:29 2009
@@ -21,6 +21,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameter;
+import org.apache.myfaces.extensions.validator.core.InvocationOrderSupport;
import javax.faces.context.FacesContext;
import javax.faces.component.UIComponent;
@@ -30,6 +31,7 @@
* @author Gerhard Petracek
* @since x.x.3
*/
+@InvocationOrderSupport
@UsageInformation(UsageCategory.API)
public interface PropertyValidationInterceptor extends ValidationParameter
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.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/ValidationExceptionInterceptor.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java Thu Oct 15 17:09:29 2009
@@ -22,6 +22,7 @@
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
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.InvocationOrderSupport;
import javax.faces.component.UIComponent;
import javax.faces.validator.ValidatorException;
@@ -32,6 +33,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrderSupport
@UsageInformation(UsageCategory.API)
public interface ValidationExceptionInterceptor
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultModuleValidationStrategyToMsgResolverNameMapper.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/message/resolver/mapper/DefaultModuleValidationStrategyToMsgResolverNameMapper.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultModuleValidationStrategyToMsgResolverNameMapper.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultModuleValidationStrategyToMsgResolverNameMapper.java Thu Oct 15 17:09:29 2009
@@ -29,7 +29,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
-@InvocationOrder(301)
+@InvocationOrder(310)
@UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
public class DefaultModuleValidationStrategyToMsgResolverNameMapper extends
DefaultValidationStrategyToMsgResolverNameMapper
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=825569&r1=825568&r2=825569&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 Thu Oct 15 17:09:29 2009
@@ -20,6 +20,8 @@
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
import org.apache.myfaces.extensions.validator.core.validation.message.resolver.MessageResolver;
import org.apache.myfaces.extensions.validator.core.validation.parameter.ValidationParameterExtractor;
@@ -490,6 +492,7 @@
}
}
+ @ToDo(value = Priority.HIGH, description = "is renaming ok?")
public static boolean executeGlobalBeforeValidationInterceptors(FacesContext facesContext,
UIComponent uiComponent,
Object convertedObject,
@@ -519,6 +522,7 @@
return result;
}
+ @ToDo(value = Priority.HIGH, description = "is renaming ok?")
public static void executeGlobalAfterValidationInterceptors(FacesContext facesContext,
UIComponent uiComponent,
Object convertedObject,
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.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/HtmlCoreComponentsComponentInitializer.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/HtmlCoreComponentsComponentInitializer.java Thu Oct 15 17:09:29 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+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.util.ReflectionUtils;
@@ -46,6 +47,7 @@
* @author Gerhard Petracek
* @since x.x.3
*/
+@InvocationOrder(200)
@UsageInformation(UsageCategory.INTERNAL)
public class HtmlCoreComponentsComponentInitializer implements ComponentInitializer
{
Modified: myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.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/HtmlCoreComponentsComponentInitializer.java?rev=825569&r1=825568&r2=825569&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java (original)
+++ myfaces/extensions/validator/branches/branch_for_jsf_1_1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsComponentInitializer.java Thu Oct 15 17:09:29 2009
@@ -20,6 +20,7 @@
import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
+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.util.ReflectionUtils;
@@ -43,6 +44,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrder(200)
@UsageInformation(UsageCategory.INTERNAL)
public class HtmlCoreComponentsComponentInitializer implements ComponentInitializer
{
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=825569&r1=825568&r2=825569&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 Thu Oct 15 17:09:29 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.InvocationOrder;
import org.apache.myfaces.extensions.validator.internal.UsageInformation;
import org.apache.myfaces.extensions.validator.internal.UsageCategory;
import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -54,6 +55,7 @@
* @author Gerhard Petracek
* @since 1.x.1
*/
+@InvocationOrder(200)
@UsageInformation(UsageCategory.INTERNAL)
public class HtmlCoreComponentsValidationExceptionInterceptor implements ValidationExceptionInterceptor
{