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 2008/11/30 17:29:10 UTC

svn commit: r721847 - in /myfaces/extensions/validator/trunk: component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/ core/src/main/java/org/apache/myfaces/extensions/validator/core/ core/src/main/...

Author: gpetracek
Date: Sun Nov 30 08:29:10 2008
New Revision: 721847

URL: http://svn.apache.org/viewvc?rev=721847&view=rev
Log:
minor refactoring

Removed:
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/DefaultComponentInitializer.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/initializer/component/DefaultComponentInitializerFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/DefaultValidationExceptionInterceptor.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/DefaultValidationExceptionInterceptorFactory.java
Modified:
    myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java

Modified: myfaces/extensions/validator/trunk/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/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/component-support/trinidad-support/src/main/java/org/apache/myfaces/extensions/validator/trinidad/interceptor/TrinidadValidationExceptionInterceptor.java Sun Nov 30 08:29:10 2008
@@ -23,6 +23,7 @@
 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.property.PropertyInformationKeys;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 
@@ -46,9 +47,9 @@
     public boolean afterThrowing(UIComponent uiComponent,
                                  MetaDataEntry metaDataEntry,
                                  Object convertedObject,
-                                 ValidatorException validatorException)
+                                 ValidatorException validatorException,
+                                 ValidationStrategy validatorExceptionSource)
     {
-
         if(processComponent(uiComponent))
         {
             FacesMessage facesMessage = validatorException.getFacesMessage();

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java Sun Nov 30 08:29:10 2008
@@ -45,8 +45,6 @@
 
     MESSAGE_RESOLVER_FACTORY,
     VALIDATION_STRATEGY_FACTORY,
-    COMPONENT_INITIALIZER_FACTORY,
-    VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY,
     COMPONENT_META_DATA_EXTRACTOR_FACTORY,
     META_DATA_TRANSFORMER_FACTORY,
 

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/ExtValContext.java Sun Nov 30 08:29:10 2008
@@ -19,11 +19,9 @@
 package org.apache.myfaces.extensions.validator.core;
 
 import org.apache.myfaces.extensions.validator.core.initializer.component.ComponentInitializer;
-import org.apache.myfaces.extensions.validator.core.initializer.component.DefaultComponentInitializer;
 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.interceptor.DefaultValidationExceptionInterceptor;
 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;
@@ -58,11 +56,82 @@
     private List<ProcessedInformationRecorder> processedInformationRecorders =
         new ArrayList<ProcessedInformationRecorder>();
 
+    private List<ComponentInitializer> componentInitializers;
+    private List<ValidationExceptionInterceptor> validationExceptionInterceptors;
+
     private Map<String, Object> globalProperties = new HashMap<String, Object>();
 
     private Map<StaticConfigurationNames, List<StaticConfiguration<String, String>>> staticConfigMap
         = new HashMap<StaticConfigurationNames, List<StaticConfiguration<String, String>>>();
 
+
+    private void initComponentInitializers()
+    {
+        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(CustomInfo.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 initValidationExceptionInterceptors()
+    {
+        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(
+                    CustomInfo.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");
+                }
+            }
+        }
+    }
+
     public static ExtValContext getContext()
     {
         return extValContext;
@@ -126,12 +195,26 @@
 
     public void addComponentInitializer(ComponentInitializer componentInitializer)
     {
-        DefaultComponentInitializer.addComponentInitializer(componentInitializer);
+        initComponentInitializers();
+        this.componentInitializers.add(componentInitializer);
+    }
+
+    public List<ComponentInitializer> getComponentInitializers()
+    {
+        initComponentInitializers();
+        return componentInitializers;
     }
 
     public void addValidationExceptionInterceptor(ValidationExceptionInterceptor validationExceptionInterceptor)
     {
-        DefaultValidationExceptionInterceptor.addValidationExceptionInterceptor(validationExceptionInterceptor);
+        initValidationExceptionInterceptors();
+        this.validationExceptionInterceptors.add(validationExceptionInterceptor);
+    }
+
+    public List<ValidationExceptionInterceptor> getValidationExceptionInterceptors()
+    {
+        initValidationExceptionInterceptors();
+        return validationExceptionInterceptors;
     }
 
     public List<ProcessedInformationRecorder> getProcessedInformationRecorders()

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java Sun Nov 30 08:29:10 2008
@@ -96,9 +96,6 @@
 
         customizableInfos.put(CustomInfo.MESSAGE_RESOLVER_FACTORY, "MessageResolverFactory");
         customizableInfos.put(CustomInfo.VALIDATION_STRATEGY_FACTORY, "ValidationStrategyFactory");
-        customizableInfos.put(CustomInfo.COMPONENT_INITIALIZER_FACTORY, "ComponentInitializerFactory");
-        customizableInfos.put(CustomInfo.VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY,
-                "ValidationExceptionInterceptorFactory");
         customizableInfos.put(CustomInfo.COMPONENT_META_DATA_EXTRACTOR_FACTORY, "ComponentMetaDataExtractorFactory");
         customizableInfos.put(CustomInfo.META_DATA_TRANSFORMER_FACTORY, "MetaDataTransformerFactory");
 

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java Sun Nov 30 08:29:10 2008
@@ -82,12 +82,6 @@
     static final String CUSTOM_META_DATA_TRANSFORMER_FACTORY = WebXmlUtils
         .getInitParameter("CUSTOM_META_DATA_TRANSFORMER_FACTORY");
 
-    static final String CUSTOM_COMPONENT_INITIALIZER_FACTORY = WebXmlUtils
-        .getInitParameter("CUSTOM_COMPONENT_INITIALIZER_FACTORY");
-
-    static final String CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY = WebXmlUtils
-            .getInitParameter("CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY");
-
     /*
      * deactivate
      */

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java Sun Nov 30 08:29:10 2008
@@ -24,10 +24,8 @@
 import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.core.CustomInfo;
-import org.apache.myfaces.extensions.validator.core.interceptor.DefaultValidationExceptionInterceptorFactory;
 import org.apache.myfaces.extensions.validator.core.el.DefaultELHelperFactory;
 import org.apache.myfaces.extensions.validator.core.renderkit.DefaultRenderKitWrapperFactory;
-import org.apache.myfaces.extensions.validator.core.initializer.component.DefaultComponentInitializerFactory;
 import org.apache.myfaces.extensions.validator.core.metadata.transformer.DefaultMetaDataTransformerFactory;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.DefaultValidationStrategyFactory;
 import org.apache.myfaces.extensions.validator.core.validation.message.resolver.DefaultMessageResolverFactory;
@@ -90,14 +88,6 @@
                 factory = createMetaDataTransformerFactory();
                 break;
 
-            case COMPONENT_INITIALIZER_FACTORY:
-                factory = createComponentInitializerFactory();
-                break;
-
-            case VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY:
-                factory = createValidationExceptionInterceptorFactory();
-                break;
-
             case RENDERKIT_WRAPPER_FACTORY:
                 factory = createRenderKitWrapperFactory();
                 break;
@@ -211,55 +201,6 @@
         return factory;
     }
 
-    protected Object createComponentInitializerFactory()
-    {
-        Object factory = null;
-        List<String> componentInitializerFactoryClassNames = new ArrayList<String>();
-
-        componentInitializerFactoryClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_INITIALIZER_FACTORY);
-        componentInitializerFactoryClassNames
-            .add(ExtValContext.getContext().getInformationProviderBean().get(CustomInfo.COMPONENT_INITIALIZER_FACTORY));
-        componentInitializerFactoryClassNames.add(DefaultComponentInitializerFactory.class.getName());
-
-        for (String className : componentInitializerFactoryClassNames)
-        {
-            factory = ClassUtils.tryToInstantiateClassForName(className);
-
-            if (factory != null)
-            {
-                break;
-            }
-        }
-
-        return factory;
-    }
-
-    private Object createValidationExceptionInterceptorFactory()
-    {
-        Object factory = null;
-        List<String> validationExceptionInterceptorFactoryClassNames = new ArrayList<String>();
-
-        validationExceptionInterceptorFactoryClassNames
-                .add(WebXmlParameter.CUSTOM_VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY);
-        validationExceptionInterceptorFactoryClassNames
-            .add(ExtValContext.getContext().getInformationProviderBean().get(
-                    CustomInfo.VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY));
-        validationExceptionInterceptorFactoryClassNames
-                .add(DefaultValidationExceptionInterceptorFactory.class.getName());
-
-        for (String className : validationExceptionInterceptorFactoryClassNames)
-        {
-            factory = ClassUtils.tryToInstantiateClassForName(className);
-
-            if (factory != null)
-            {
-                break;
-            }
-        }
-
-        return factory;
-    }
-
     protected Object createRenderKitWrapperFactory()
     {
         return new DefaultRenderKitWrapperFactory();

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java Sun Nov 30 08:29:10 2008
@@ -32,8 +32,7 @@
     VALIDATION_STRATEGY_FACTORY,
     MESSAGE_RESOLVER_FACTORY,
     META_DATA_TRANSFORMER_FACTORY,
-    COMPONENT_INITIALIZER_FACTORY,
-    VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY,
+
     RENDERKIT_WRAPPER_FACTORY,
     EL_HELPER_FACTORY
 }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationExceptionInterceptor.java Sun Nov 30 08:29:10 2008
@@ -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.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
 
 import javax.faces.component.UIComponent;
 import javax.faces.validator.ValidatorException;
@@ -45,5 +46,6 @@
     boolean afterThrowing(UIComponent uiComponent,
                           MetaDataEntry metaDataEntry,
                           Object convertedObject,
-                          ValidatorException validatorException);
+                          ValidatorException validatorException,
+                          ValidationStrategy validatorExceptionSource);
 }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java Sun Nov 30 08:29:10 2008
@@ -123,7 +123,7 @@
                                                      ValidatorException validatorException)
     {
         return ExtValUtils.executeAfterThrowingInterceptors(
-                uiComponent, metaDataEntry, convertedObject, validatorException);
+                uiComponent, metaDataEntry, convertedObject, validatorException, this);
     }
 
     protected abstract void processValidation(FacesContext facesContext,

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java Sun Nov 30 08:29:10 2008
@@ -85,22 +85,31 @@
                                                       UIComponent uiComponent,
                                                       Map<String, Object> metaData)
     {
-        ((ClassMappingFactory<UIComponent, ComponentInitializer>)ExtValContext.getContext().getFactoryFinder()
-                    .getFactory(FactoryNames.COMPONENT_INITIALIZER_FACTORY, ClassMappingFactory.class))
-                    .create(uiComponent)
-                    .configureComponent(facesContext, uiComponent, metaData);
+        for(ComponentInitializer componentInitializer : ExtValContext.getContext().getComponentInitializers())
+        {
+            componentInitializer.configureComponent(facesContext, uiComponent, metaData);
+        }
     }
 
     public static boolean executeAfterThrowingInterceptors(UIComponent uiComponent,
                                                         MetaDataEntry metaDataEntry,
                                                         Object convertedObject,
-                                                        ValidatorException validatorException)
+                                                        ValidatorException validatorException,
+                                                        ValidationStrategy validatorExceptionSource)
     {
-        return ((ClassMappingFactory<UIComponent, ValidationExceptionInterceptor>)
-                ExtValContext.getContext().getFactoryFinder()
-                    .getFactory(FactoryNames.VALIDATION_EXCEPTION_INTERCEPTOR_FACTORY, ClassMappingFactory.class))
-                    .create(uiComponent)
-                    .afterThrowing(uiComponent, metaDataEntry, convertedObject, validatorException);
+        boolean result = true;
+
+        for(ValidationExceptionInterceptor validationExceptionInterceptor : ExtValContext.getContext()
+                .getValidationExceptionInterceptors())
+        {
+            if(!validationExceptionInterceptor.afterThrowing(
+                            uiComponent, metaDataEntry, convertedObject, validatorException, validatorExceptionSource))
+            {
+                result = false;
+            }
+        }
+
+        return result;
     }
 
     public static MessageResolver getMessageResolverForValidationStrategy(ValidationStrategy validationStrategy)

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/HtmlCoreComponentsValidationExceptionInterceptor.java Sun Nov 30 08:29:10 2008
@@ -21,6 +21,7 @@
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.interceptor.ValidationExceptionInterceptor;
 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.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
@@ -51,9 +52,9 @@
     public boolean afterThrowing(UIComponent uiComponent,
                                  MetaDataEntry metaDataEntry,
                                  Object convertedObject,
-                                 ValidatorException validatorException)
+                                 ValidatorException validatorException,
+                                 ValidationStrategy validatorExceptionSource)
     {
-
         if(processComponent(uiComponent))
         {
             FacesMessage facesMessage = validatorException.getFacesMessage();

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java?rev=721847&r1=721846&r2=721847&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java Sun Nov 30 08:29:10 2008
@@ -99,6 +99,6 @@
     {
         return ExtValUtils.executeAfterThrowingInterceptors(
                 crossValidationStorageEntry.getComponent(), crossValidationStorageEntry.getMetaDataEntry(),
-                crossValidationStorageEntry.getConvertedObject(), validatorException);
+                crossValidationStorageEntry.getConvertedObject(), validatorException, this);
     }
 }