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
 {