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/02/01 21:30:39 UTC

svn commit: r739826 - in /myfaces/extensions/validator/trunk: core/src/main/java/org/apache/myfaces/extensions/validator/core/ core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/ core/src/main/java/org/apache/myfaces/extensions/val...

Author: gpetracek
Date: Sun Feb  1 20:30:38 2009
New Revision: 739826

URL: http://svn.apache.org/viewvc?rev=739826&view=rev
Log:
EXTVAL-32 de-/register custom name mappers via extval java-api

Added:
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/AbstractNameMapperAwareFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/ClassMappingFactory.java
      - copied, changed from r739823, myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/ClassMappingFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractMetaDataToValidationStrategyNameMapper.java
      - copied, changed from r739823, myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java
Removed:
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/ClassMappingFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java
Modified:
    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/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/metadata/transformer/DefaultMetaDataTransformerFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/AbstractRenderKitWrapperFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/DefaultMessageResolverFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.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/test/java/org/apache/myfaces/extensions/validator/AbstractExValViewControllerTestCase.java

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=739826&r1=739825&r2=739826&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 Feb  1 20:30:38 2009
@@ -50,7 +50,7 @@
 
     private static ExtValContext extValContext = new ExtValContext();
 
-    private FactoryFinder factoryFinder = new DefaultFactoryFinder();
+    private FactoryFinder factoryFinder = DefaultFactoryFinder.getInstance();
     private Map<String, RendererInterceptor> rendererInterceptors = new HashMap<String, RendererInterceptor>();
     private List<String> deniedInterceptors = new ArrayList<String>();
     private List<ProcessedInformationRecorder> processedInformationRecorders =

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=739826&r1=739825&r2=739826&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 Feb  1 20:30:38 2009
@@ -85,6 +85,7 @@
     /*
      * deactivate
      */
+    @Deprecated
     static final String DEACTIVATE_RENDERKIT = WebXmlUtils
         .getInitParameter("DEACTIVATE_RENDERKIT");
 
@@ -92,6 +93,9 @@
     static final String DEACTIVATE_DEFAULT_CONVENTION = WebXmlUtils
         .getInitParameter("DEACTIVATE_DEFAULT_CONVENTION");
 
+    static final String DEACTIVATE_DEFAULT_NAME_MAPPERS = WebXmlUtils
+        .getInitParameter("DEACTIVATE_DEFAULT_NAME_MAPPERS");
+    
     static final String DEACTIVATE_EL_RESOLVER = WebXmlUtils
         .getInitParameter("DEACTIVATE_EL_RESOLVER");
 

Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/AbstractNameMapperAwareFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/AbstractNameMapperAwareFactory.java?rev=739826&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/AbstractNameMapperAwareFactory.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/AbstractNameMapperAwareFactory.java Sun Feb  1 20:30:38 2009
@@ -0,0 +1,71 @@
+/*
+ * 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.factory;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.2
+ */
+@UsageInformation(UsageCategory.API)
+public abstract class AbstractNameMapperAwareFactory<T> implements NameMapperAwareFactory<NameMapper<T>>
+{
+    private List<Class> deniedNameMapperList = new ArrayList<Class>();
+
+    public synchronized void register(NameMapper<T> nameMapper)
+    {
+        if(!deniedNameMapperList.contains(nameMapper.getClass()))
+        {
+            getNameMapperList().add(nameMapper);
+        }
+    }
+
+    public synchronized void deregister(Class classToDeregister)
+    {
+        Iterator<NameMapper<T>> nameMapperIterator = getNameMapperList().iterator();
+        while(nameMapperIterator.hasNext())
+        {
+            if(nameMapperIterator.next().getClass().getName().equals(classToDeregister.getName()))
+            {
+                nameMapperIterator.remove();
+                //don't break - e.g. to deregister all wrappers...
+                //break;
+            }
+        }
+    }
+
+    public void deny(Class classToDeny)
+    {
+        deregister(classToDeny);
+
+        synchronized (getClass())
+        {
+            deniedNameMapperList.add(classToDeny);
+        }
+    }
+
+    protected abstract List<NameMapper<T>> getNameMapperList();
+}

Copied: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/ClassMappingFactory.java (from r739823, myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/ClassMappingFactory.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/ClassMappingFactory.java?p2=myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/ClassMappingFactory.java&p1=myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/ClassMappingFactory.java&r1=739823&r2=739826&rev=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/mapper/ClassMappingFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/ClassMappingFactory.java Sun Feb  1 20:30:38 2009
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-package org.apache.myfaces.extensions.validator.core.mapper;
+package org.apache.myfaces.extensions.validator.core.factory;
 
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -29,4 +29,4 @@
 public interface ClassMappingFactory<P, R>
 {
     R create(P source);
-}
\ No newline at end of file
+}

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=739826&r1=739825&r2=739826&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 Feb  1 20:30:38 2009
@@ -49,7 +49,9 @@
     protected final Log logger = LogFactory.getLog(getClass());
     protected Map<FactoryNames, Object> factoryMap = new HashMap<FactoryNames, Object>();
 
-    public DefaultFactoryFinder()
+    private static FactoryFinder factoryFinder = new DefaultFactoryFinder();
+
+    private DefaultFactoryFinder()
     {
         if(logger.isDebugEnabled())
         {
@@ -57,6 +59,11 @@
         }
     }
 
+    public static FactoryFinder getInstance()
+    {
+        return factoryFinder;
+    }
+
     public final <T> T getFactory(FactoryNames factoryName, Class<T> targetClass)
     {
         if(!(factoryMap.containsKey(factoryName)))

Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java?rev=739826&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/NameMapperAwareFactory.java Sun Feb  1 20:30:38 2009
@@ -0,0 +1,35 @@
+/*
+ * 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.factory;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.2
+ */
+@UsageInformation(UsageCategory.API)
+public interface NameMapperAwareFactory<T extends NameMapper>
+{
+    void register(T classToAdd);
+    void deregister(Class<? extends NameMapper> classToDeregister);
+    void deny(Class<? extends NameMapper> classToDeny);
+}

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/DefaultMetaDataTransformerFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/DefaultMetaDataTransformerFactory.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/DefaultMetaDataTransformerFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/DefaultMetaDataTransformerFactory.java Sun Feb  1 20:30:38 2009
@@ -18,19 +18,10 @@
  */
 package org.apache.myfaces.extensions.validator.core.metadata.transformer;
 
-import org.apache.myfaces.extensions.validator.core.mapper.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.AbstractNameMapperAwareFactory;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.BeanValidationStrategyAdapter;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
-        .CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
-        .CustomConventionValidationStrategyToMetaDataTransformerNameMapper;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
-        .DefaultValidationStrategyToMetaDataTransformerNameMapper;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
-        .SimpleValidationStrategyToMetaDataTransformerNameMapper;
-import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
-        .BeanValidationStrategyToMetaDataTransformerNameMapper;
 import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
 import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfiguration;
 import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
@@ -59,27 +50,13 @@
  * to avoid a second static mapping e.g. for jpa annotations
  */
 @UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
-public class DefaultMetaDataTransformerFactory implements ClassMappingFactory<ValidationStrategy, MetaDataTransformer>
+public class DefaultMetaDataTransformerFactory extends AbstractNameMapperAwareFactory<ValidationStrategy>
+        implements ClassMappingFactory<ValidationStrategy, MetaDataTransformer>
 {
     protected final Log logger = LogFactory.getLog(getClass());
 
-    private static Map<String, String> validationStrategyToMetaDataTransformerMapping;
-    private static List<NameMapper<ValidationStrategy>> nameMapperList
-        = new ArrayList<NameMapper<ValidationStrategy>>();
-
-    static
-    {
-        nameMapperList
-            .add(new CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper());
-        nameMapperList
-            .add(new CustomConventionValidationStrategyToMetaDataTransformerNameMapper());
-        nameMapperList
-            .add(new DefaultValidationStrategyToMetaDataTransformerNameMapper());
-        nameMapperList
-            .add(new SimpleValidationStrategyToMetaDataTransformerNameMapper());
-        nameMapperList
-            .add(new BeanValidationStrategyToMetaDataTransformerNameMapper());
-    }
+    private Map<String, String> validationStrategyToMetaDataTransformerMapping;
+    private List<NameMapper<ValidationStrategy>> nameMapperList = new ArrayList<NameMapper<ValidationStrategy>>();
 
     public DefaultMetaDataTransformerFactory()
     {
@@ -143,19 +120,16 @@
         return null;
     }
 
-    private void initStaticMappings()
+    private synchronized void initStaticMappings()
     {
-        synchronized (DefaultMetaDataTransformerFactory.class)
-        {
-            validationStrategyToMetaDataTransformerMapping = new HashMap<String, String>();
+        validationStrategyToMetaDataTransformerMapping = new HashMap<String, String>();
 
-            //setup internal static mappings
-            for (StaticConfiguration<String, String> staticConfig :
-                ExtValContext.getContext().getStaticConfiguration(
-                    StaticConfigurationNames.VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_CONFIG))
-            {
-                setupStrategyMappings(staticConfig.getMapping());
-            }
+        //setup internal static mappings
+        for (StaticConfiguration<String, String> staticConfig :
+            ExtValContext.getContext().getStaticConfiguration(
+                StaticConfigurationNames.VALIDATION_STRATEGY_TO_META_DATA_TRANSFORMER_CONFIG))
+        {
+            setupStrategyMappings(staticConfig.getMapping());
         }
     }
 
@@ -167,7 +141,7 @@
         }
     }
 
-    private void addMapping(String validationStrategyName, String transformerName)
+    private synchronized void addMapping(String validationStrategyName, String transformerName)
     {
         if(logger.isTraceEnabled())
         {
@@ -175,9 +149,11 @@
                 + validationStrategyName + " -> " + transformerName);
         }
 
-        synchronized (DefaultMetaDataTransformerFactory.class)
-        {
-            validationStrategyToMetaDataTransformerMapping.put(validationStrategyName, transformerName);
-        }
+        validationStrategyToMetaDataTransformerMapping.put(validationStrategyName, transformerName);
+    }
+
+    protected List<NameMapper<ValidationStrategy>> getNameMapperList()
+    {
+        return nameMapperList;
     }
 }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/AbstractRenderKitWrapperFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/AbstractRenderKitWrapperFactory.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/AbstractRenderKitWrapperFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/AbstractRenderKitWrapperFactory.java Sun Feb  1 20:30:38 2009
@@ -20,7 +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.mapper.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -102,4 +102,4 @@
     }
 
     protected abstract RenderKit createWrapper(RenderKit renderKit);
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/startup/ExtValStartupListener.java Sun Feb  1 20:30:38 2009
@@ -23,8 +23,40 @@
 import org.apache.myfaces.extensions.validator.core.interceptor.ValidationInterceptor;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.core.CustomInformation;
+import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
+        .BeanValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
+        .SimpleValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
+        .DefaultValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
+        .CustomConventionValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper
+        .CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
+        .CustomConventionAnnotationToValidationStrategyNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
+        .DefaultAnnotationToValidationStrategyNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
+        .CustomConfiguredAnnotationToValidationStrategyNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
+        .SimpleAnnotationToValidationStrategyNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
+        .AnnotationToValidationStrategyBeanNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.mapper
+        .CustomConfiguredValidationStrategyToMsgResolverNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.mapper
+        .CustomConventionValidationStrategyToMsgResolverNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.mapper
+        .DefaultValidationStrategyToMsgResolverNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.mapper
+        .DefaultModuleValidationStrategyToMsgResolverNameMapper;
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.mapper
+        .SimpleValidationStrategyToMsgResolverNameMapper;
 import org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererProxy;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.ExtValInformation;
 
 /**
@@ -50,14 +82,71 @@
 
         ExtValContext.getContext().registerRendererInterceptor(new ValidationInterceptor());
 
+        ExtValContext.getContext()
+                .addGlobalProperty(ExtValRendererProxy.KEY, ExtValRendererProxy.class.getName(), false);
+
+        initNameMappers();
         executeCustomStartupListener();
     }
 
-    private void executeCustomStartupListener()
+    private void initNameMappers()
     {
-        ExtValContext.getContext()
-                .addGlobalProperty(ExtValRendererProxy.KEY, ExtValRendererProxy.class.getName(), false);
+        String deactivateDefaultNameMappers = WebXmlParameter.DEACTIVATE_DEFAULT_NAME_MAPPERS;
+        if ((deactivateDefaultNameMappers != null && deactivateDefaultNameMappers.equalsIgnoreCase("true")))
+        {
+            return;
+        }
+
+        //register metadata to validation strategy name mapper
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new CustomConfiguredAnnotationToValidationStrategyNameMapper());
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new CustomConventionAnnotationToValidationStrategyNameMapper());
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new DefaultAnnotationToValidationStrategyNameMapper());
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new SimpleAnnotationToValidationStrategyNameMapper());
+
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new AnnotationToValidationStrategyBeanNameMapper(
+                        new CustomConfiguredAnnotationToValidationStrategyNameMapper()));
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new AnnotationToValidationStrategyBeanNameMapper(
+                        new CustomConventionAnnotationToValidationStrategyNameMapper()));
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new AnnotationToValidationStrategyBeanNameMapper(
+                        new DefaultAnnotationToValidationStrategyNameMapper()));
+        ExtValUtils.registerMetaDataToValidationStrategyNameMapper(
+                new AnnotationToValidationStrategyBeanNameMapper(
+                        new SimpleAnnotationToValidationStrategyNameMapper()));
+
+        //register validation strategy to message resolver name mapper
+        ExtValUtils.registerValidationStrategyToMessageResolverNameMapper(
+                new CustomConfiguredValidationStrategyToMsgResolverNameMapper());
+        ExtValUtils.registerValidationStrategyToMessageResolverNameMapper(
+                new CustomConventionValidationStrategyToMsgResolverNameMapper());
+        ExtValUtils.registerValidationStrategyToMessageResolverNameMapper(
+                new DefaultValidationStrategyToMsgResolverNameMapper());
+        ExtValUtils.registerValidationStrategyToMessageResolverNameMapper(
+                new DefaultModuleValidationStrategyToMsgResolverNameMapper());
+        ExtValUtils.registerValidationStrategyToMessageResolverNameMapper(
+                new SimpleValidationStrategyToMsgResolverNameMapper());
+
+        //register validation strategy to metadata transformer name mapper
+        ExtValUtils.registerValidationStrategyToMetaDataTransformerNameMapper(
+                new CustomConfiguredValidationStrategyToMetaDataTransformerNameMapper());
+        ExtValUtils.registerValidationStrategyToMetaDataTransformerNameMapper(
+                new CustomConventionValidationStrategyToMetaDataTransformerNameMapper());
+        ExtValUtils.registerValidationStrategyToMetaDataTransformerNameMapper(
+                new DefaultValidationStrategyToMetaDataTransformerNameMapper());
+        ExtValUtils.registerValidationStrategyToMetaDataTransformerNameMapper(
+                new SimpleValidationStrategyToMetaDataTransformerNameMapper());
+        ExtValUtils.registerValidationStrategyToMetaDataTransformerNameMapper(
+                new BeanValidationStrategyToMetaDataTransformerNameMapper());
+    }
 
+    private void executeCustomStartupListener()
+    {
         String customStartupListenerName = ExtValContext.getContext().getInformationProviderBean()
             .get(CustomInformation.STARTUP_LISTENER);
         AbstractStartupListener customStartupListener =

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/DefaultMessageResolverFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/DefaultMessageResolverFactory.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/DefaultMessageResolverFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/DefaultMessageResolverFactory.java Sun Feb  1 20:30:38 2009
@@ -18,18 +18,9 @@
  */
 package org.apache.myfaces.extensions.validator.core.validation.message.resolver;
 
-import org.apache.myfaces.extensions.validator.core.mapper.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.AbstractNameMapperAwareFactory;
 import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.message.
-        resolver.mapper.CustomConfiguredValidationStrategyToMsgResolverNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.message.
-        resolver.mapper.CustomConventionValidationStrategyToMsgResolverNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.message.
-        resolver.mapper.DefaultModuleValidationStrategyToMsgResolverNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.message.
-        resolver.mapper.DefaultValidationStrategyToMsgResolverNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.message.
-        resolver.mapper.SimpleValidationStrategyToMsgResolverNameMapper;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
 import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfiguration;
 import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationEntry;
@@ -56,28 +47,13 @@
  */
 @ToDo(value = Priority.MEDIUM, description = "add generic java api (de-/register mapping)")
 @UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
-public class DefaultMessageResolverFactory implements
-    ClassMappingFactory<ValidationStrategy, MessageResolver>
+public class DefaultMessageResolverFactory extends AbstractNameMapperAwareFactory<ValidationStrategy>
+        implements ClassMappingFactory<ValidationStrategy, MessageResolver>
 {
     protected final Log logger = LogFactory.getLog(getClass());
 
-    private static Map<String, String> strategyMessageResolverMapping;
-    private static List<NameMapper<ValidationStrategy>> nameMapperList =
-        new ArrayList<NameMapper<ValidationStrategy>>();
-
-    static
-    {
-        nameMapperList
-            .add(new CustomConfiguredValidationStrategyToMsgResolverNameMapper());
-        nameMapperList
-            .add(new CustomConventionValidationStrategyToMsgResolverNameMapper());
-        nameMapperList
-            .add(new DefaultValidationStrategyToMsgResolverNameMapper());
-        nameMapperList
-            .add(new DefaultModuleValidationStrategyToMsgResolverNameMapper());
-        nameMapperList
-            .add(new SimpleValidationStrategyToMsgResolverNameMapper());
-    }
+    private Map<String, String> strategyMessageResolverMapping;
+    private List<NameMapper<ValidationStrategy>> nameMapperList = new ArrayList<NameMapper<ValidationStrategy>>();
 
     public DefaultMessageResolverFactory()
     {
@@ -134,19 +110,16 @@
         return new DefaultValidationErrorMessageResolver();
     }
 
-    private void initStaticMappings()
+    private synchronized void initStaticMappings()
     {
-        synchronized (DefaultMessageResolverFactory.class)
-        {
-            strategyMessageResolverMapping = new HashMap<String, String>();
+        strategyMessageResolverMapping = new HashMap<String, String>();
 
-            //setup internal static mappings
-            for (StaticConfiguration<String, String> staticConfig :
-                ExtValContext.getContext().getStaticConfiguration(
-                    StaticConfigurationNames.VALIDATION_STRATEGY_TO_MESSAGE_RESOLVER_CONFIG))
-            {
-                setupStrategyMappings(staticConfig.getMapping());
-            }
+        //setup internal static mappings
+        for (StaticConfiguration<String, String> staticConfig :
+            ExtValContext.getContext().getStaticConfiguration(
+                StaticConfigurationNames.VALIDATION_STRATEGY_TO_MESSAGE_RESOLVER_CONFIG))
+        {
+            setupStrategyMappings(staticConfig.getMapping());
         }
     }
 
@@ -159,7 +132,7 @@
     }
 
     @ToDo(value = Priority.MEDIUM, description = "logging")
-    private void addMapping(String validationStrategyName, String messageResolverName)
+    private synchronized void addMapping(String validationStrategyName, String messageResolverName)
     {
         if(logger.isTraceEnabled())
         {
@@ -167,9 +140,11 @@
                 + validationStrategyName + " -> " + messageResolverName);
         }
 
-        synchronized (DefaultMessageResolverFactory.class)
-        {
-            strategyMessageResolverMapping.put(validationStrategyName, messageResolverName);
-        }
+        strategyMessageResolverMapping.put(validationStrategyName, messageResolverName);
+    }
+
+    protected List<NameMapper<ValidationStrategy>> getNameMapperList()
+    {
+        return nameMapperList;
     }
 }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java Sun Feb  1 20:30:38 2009
@@ -18,7 +18,8 @@
  */
 package org.apache.myfaces.extensions.validator.core.validation.strategy;
 
-import org.apache.myfaces.extensions.validator.core.mapper.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.AbstractNameMapperAwareFactory;
 import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.core.CustomInformation;
@@ -29,14 +30,6 @@
 import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticResourceBundleConfiguration;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
     .AnnotationToValidationStrategyBeanNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
-    .CustomConfiguredAnnotationToValidationStrategyNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
-    .CustomConventionAnnotationToValidationStrategyNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
-    .DefaultAnnotationToValidationStrategyNameMapper;
-import org.apache.myfaces.extensions.validator.core.validation.strategy.mapper
-    .SimpleAnnotationToValidationStrategyNameMapper;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.internal.ToDo;
@@ -59,38 +52,14 @@
  * @author Gerhard Petracek
  * @since 1.x.1
  */
-@ToDo(value = Priority.MEDIUM, description = "add generic java api (de-/register mapping)")
 @UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
-public class DefaultValidationStrategyFactory implements ClassMappingFactory<String, ValidationStrategy>
+public class DefaultValidationStrategyFactory extends AbstractNameMapperAwareFactory
+        implements ClassMappingFactory<String, ValidationStrategy>
 {
     protected final Log logger = LogFactory.getLog(getClass());
 
-    private static Map<String, String> metaDataKeyToValidationStrategyMapping = null;
-    private static List<NameMapper<String>> metaDataKeyToValidationStrategyNameMapperList =
-        new ArrayList<NameMapper<String>>();
-
-    static
-    {
-        metaDataKeyToValidationStrategyNameMapperList
-            .add(new CustomConfiguredAnnotationToValidationStrategyNameMapper());
-        metaDataKeyToValidationStrategyNameMapperList
-            .add(new CustomConventionAnnotationToValidationStrategyNameMapper());
-        metaDataKeyToValidationStrategyNameMapperList
-            .add(new DefaultAnnotationToValidationStrategyNameMapper());
-        metaDataKeyToValidationStrategyNameMapperList
-            .add(new SimpleAnnotationToValidationStrategyNameMapper());
-
-        metaDataKeyToValidationStrategyNameMapperList
-            .add(new AnnotationToValidationStrategyBeanNameMapper(
-                new CustomConfiguredAnnotationToValidationStrategyNameMapper()));
-        metaDataKeyToValidationStrategyNameMapperList
-            .add(new AnnotationToValidationStrategyBeanNameMapper(
-                new CustomConventionAnnotationToValidationStrategyNameMapper()));
-        metaDataKeyToValidationStrategyNameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
-            new DefaultAnnotationToValidationStrategyNameMapper()));
-        metaDataKeyToValidationStrategyNameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
-            new SimpleAnnotationToValidationStrategyNameMapper()));
-    }
+    private Map<String, String> metaDataKeyToValidationStrategyMapping = null;
+    private List<NameMapper<String>> nameMapperList = new ArrayList<NameMapper<String>>();
 
     public DefaultValidationStrategyFactory()
     {
@@ -115,7 +84,7 @@
         ValidationStrategy validationStrategy;
         String strategyName;
         //null -> use name mappers
-        for (NameMapper<String> nameMapper : metaDataKeyToValidationStrategyNameMapperList)
+        for (NameMapper<String> nameMapper : nameMapperList)
         {
             strategyName = nameMapper.createName(metaDataKey);
 
@@ -150,7 +119,7 @@
     }
 
     @ToDo(value = Priority.MEDIUM, description = "logging")
-    private void addMapping(String metaDataKey, String validationStrategyName)
+    private synchronized void addMapping(String metaDataKey, String validationStrategyName)
     {
         if(logger.isTraceEnabled())
         {
@@ -158,56 +127,50 @@
                 + metaDataKey + " -> " + validationStrategyName);
         }
 
-        synchronized (DefaultValidationStrategyFactory.class)
-        {
-            metaDataKeyToValidationStrategyMapping.put(metaDataKey, validationStrategyName);
-        }
+        metaDataKeyToValidationStrategyMapping.put(metaDataKey, validationStrategyName);
     }
 
     @ToDo(value = Priority.MEDIUM, description = "logging")
-    private void initStaticMappings()
+    private synchronized void initStaticMappings()
     {
-        synchronized (DefaultValidationStrategyFactory.class)
+        metaDataKeyToValidationStrategyMapping = new HashMap<String, String>();
+
+        //setup internal static mappings
+        for (StaticConfiguration<String, String> staticConfig :
+            ExtValContext.getContext().getStaticConfiguration(
+                StaticConfigurationNames.META_DATA_TO_VALIDATION_STRATEGY_CONFIG))
         {
-            metaDataKeyToValidationStrategyMapping = new HashMap<String, String>();
+            setupStrategyMappings(staticConfig.getMapping());
+        }
 
-            //setup internal static mappings
-            for (StaticConfiguration<String, String> staticConfig :
-                ExtValContext.getContext().getStaticConfiguration(
-                    StaticConfigurationNames.META_DATA_TO_VALIDATION_STRATEGY_CONFIG))
-            {
-                setupStrategyMappings(staticConfig.getMapping());
-            }
+        StaticConfiguration<String, String> staticConfig = new StaticResourceBundleConfiguration();
+        //try to setup mapping with base name by convention - overrides default mapping
+        try
+        {
+            //build convention (strategy mapping)
+            staticConfig.setSourceOfMapping(ExtValContext.getContext().getInformationProviderBean()
+                .get(CustomInformation.STATIC_STRATEGY_MAPPING_SOURCE));
 
-            StaticConfiguration<String, String> staticConfig = new StaticResourceBundleConfiguration();
-            //try to setup mapping with base name by convention - overrides default mapping
+            setupStrategyMappings(staticConfig.getMapping());
+        }
+        catch (Throwable t)
+        {
+            //do nothing - it was just a try
+        }
+
+        //setup custom mapping - overrides all other mappings
+        String customMappingBaseName = WebXmlParameter.CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING;
+        if (customMappingBaseName != null)
+        {
             try
             {
-                //build convention (strategy mapping)
-                staticConfig.setSourceOfMapping(ExtValContext.getContext().getInformationProviderBean()
-                    .get(CustomInformation.STATIC_STRATEGY_MAPPING_SOURCE));
-
+                staticConfig = new StaticResourceBundleConfiguration();
+                staticConfig.setSourceOfMapping(customMappingBaseName);
                 setupStrategyMappings(staticConfig.getMapping());
             }
-            catch (Throwable t)
+            catch (MissingResourceException e)
             {
-                //do nothing - it was just a try
-            }
-
-            //setup custom mapping - overrides all other mappings
-            String customMappingBaseName = WebXmlParameter.CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING;
-            if (customMappingBaseName != null)
-            {
-                try
-                {
-                    staticConfig = new StaticResourceBundleConfiguration();
-                    staticConfig.setSourceOfMapping(customMappingBaseName);
-                    setupStrategyMappings(staticConfig.getMapping());
-                }
-                catch (MissingResourceException e)
-                {
-                    e.printStackTrace();
-                }
+                e.printStackTrace();
             }
         }
     }
@@ -219,4 +182,9 @@
             addMapping(mapping.getSource(), mapping.getTarget());
         }
     }
+
+    protected List<NameMapper<String>> getNameMapperList()
+    {
+        return this.nameMapperList;
+    }
 }

Copied: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractMetaDataToValidationStrategyNameMapper.java (from r739823, myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java)
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractMetaDataToValidationStrategyNameMapper.java?p2=myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractMetaDataToValidationStrategyNameMapper.java&p1=myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java&r1=739823&r2=739826&rev=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractMetaDataToValidationStrategyNameMapper.java Sun Feb  1 20:30:38 2009
@@ -29,11 +29,11 @@
  * @since 1.x.1
  */
 @UsageInformation(UsageCategory.INTERNAL)
-public abstract class AbstractAnnotationToValidationStrategyNameMapper implements NameMapper<String>
+public abstract class AbstractMetaDataToValidationStrategyNameMapper implements NameMapper<String>
 {
     protected final Log logger = LogFactory.getLog(getClass());
 
-    public AbstractAnnotationToValidationStrategyNameMapper()
+    public AbstractMetaDataToValidationStrategyNameMapper()
     {
         if(logger.isDebugEnabled())
         {

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java Sun Feb  1 20:30:38 2009
@@ -36,7 +36,7 @@
  * @since 1.x.1
  */
 @UsageInformation(UsageCategory.INTERNAL)
-public class AnnotationToValidationStrategyBeanNameMapper extends AbstractAnnotationToValidationStrategyNameMapper
+public class AnnotationToValidationStrategyBeanNameMapper extends AbstractMetaDataToValidationStrategyNameMapper
 {
     public static final String PREFIX_FOR_BEAN_MAPPING = "bean:";
     private NameMapper<String> wrapped;

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java Sun Feb  1 20:30:38 2009
@@ -29,7 +29,7 @@
  * @since 1.x.1
  */
 @UsageInformation(UsageCategory.INTERNAL)
-public class DefaultAnnotationToValidationStrategyNameMapper extends AbstractAnnotationToValidationStrategyNameMapper
+public class DefaultAnnotationToValidationStrategyNameMapper extends AbstractMetaDataToValidationStrategyNameMapper
 {
     public String createName(String metaDataKey)
     {

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.java Sun Feb  1 20:30:38 2009
@@ -30,7 +30,7 @@
  * @since 1.x.1
  */
 @UsageInformation({UsageCategory.INTERNAL})
-public class SimpleAnnotationToValidationStrategyNameMapper extends AbstractAnnotationToValidationStrategyNameMapper
+public class SimpleAnnotationToValidationStrategyNameMapper extends AbstractMetaDataToValidationStrategyNameMapper
 {
     public String createName(String metaDataKey)
     {

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=739826&r1=739825&r2=739826&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 Feb  1 20:30:38 2009
@@ -22,8 +22,9 @@
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 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.mapper.ClassMappingFactory;
+import org.apache.myfaces.extensions.validator.core.factory.ClassMappingFactory;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
+import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
 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.property.PropertyDetails;
@@ -36,6 +37,7 @@
 import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
 import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
+import org.apache.myfaces.extensions.validator.core.factory.NameMapperAwareFactory;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -66,6 +68,33 @@
                 .create(metaDataKey);
     }
 
+    public static void registerMetaDataToValidationStrategyNameMapper(
+            NameMapper<String> metaDataToValidationStrategyNameMapper)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.VALIDATION_STRATEGY_FACTORY, NameMapperAwareFactory.class))
+                .register(metaDataToValidationStrategyNameMapper);
+    }
+
+    public static void deregisterMetaDataToValidationStrategyNameMapper(
+            Class<? extends NameMapper> metaDataToValidationStrategyNameMapperClass)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.VALIDATION_STRATEGY_FACTORY, NameMapperAwareFactory.class))
+                .deregister(metaDataToValidationStrategyNameMapperClass);
+    }
+
+    public static void denyMetaDataToValidationStrategyNameMapper(
+            Class<? extends NameMapper> metaDataToValidationStrategyNameMapperClass)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.VALIDATION_STRATEGY_FACTORY, NameMapperAwareFactory.class))
+                .deny(metaDataToValidationStrategyNameMapperClass);
+    }
+
     public static MetaDataTransformer getMetaDataTransformerForValidationStrategy(ValidationStrategy validationStrategy)
     {
         return ((ClassMappingFactory<ValidationStrategy, MetaDataTransformer>) ExtValContext
@@ -74,6 +103,33 @@
                     .create(validationStrategy);
     }
 
+    public static void registerValidationStrategyToMetaDataTransformerNameMapper(
+            NameMapper<ValidationStrategy> validationStrategyToMetaDataTransformerNameMapper)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.META_DATA_TRANSFORMER_FACTORY, NameMapperAwareFactory.class))
+                .register(validationStrategyToMetaDataTransformerNameMapper);
+    }
+
+    public static void deregisterValidationStrategyToMetaDataTransformerNameMapper(
+            Class<? extends NameMapper> validationStrategyToMetaDataTransformerNameMapperClass)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.META_DATA_TRANSFORMER_FACTORY, NameMapperAwareFactory.class))
+                .deregister(validationStrategyToMetaDataTransformerNameMapperClass);
+    }
+
+    public static void denyValidationStrategyToMetaDataTransformerNameMapper(
+            Class<? extends NameMapper> validationStrategyToMetaDataTransformerNameMapperClass)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.META_DATA_TRANSFORMER_FACTORY, NameMapperAwareFactory.class))
+                .deny(validationStrategyToMetaDataTransformerNameMapperClass);
+    }
+
     public static MetaDataExtractor getComponentMetaDataExtractor()
     {
             return ExtValContext.getContext().getFactoryFinder()
@@ -120,6 +176,33 @@
             .create(validationStrategy);
     }
 
+    public static void registerValidationStrategyToMessageResolverNameMapper(
+            NameMapper<ValidationStrategy> validationStrategyToMsgResolverNameMapper)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.MESSAGE_RESOLVER_FACTORY, NameMapperAwareFactory.class))
+                .register(validationStrategyToMsgResolverNameMapper);
+    }
+
+    public static void deregisterValidationStrategyToMessageResolverNameMapper(
+            Class<? extends NameMapper> validationStrategyToMessageResolverNameMapperClass)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.MESSAGE_RESOLVER_FACTORY, NameMapperAwareFactory.class))
+                .deregister(validationStrategyToMessageResolverNameMapperClass);
+    }
+
+    public static void denyValidationStrategyToMessageResolverNameMapper(
+            Class<? extends NameMapper> validationStrategyToMessageResolverNameMapperClass)
+    {
+        (ExtValContext.getContext()
+                .getFactoryFinder()
+                .getFactory(FactoryNames.MESSAGE_RESOLVER_FACTORY, NameMapperAwareFactory.class))
+                .deny(validationStrategyToMessageResolverNameMapperClass);
+    }
+
     public static ELHelper getELHelper()
     {
         return ExtValContext.getContext().getFactoryFinder()

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/test/java/org/apache/myfaces/extensions/validator/AbstractExValViewControllerTestCase.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/test/java/org/apache/myfaces/extensions/validator/AbstractExValViewControllerTestCase.java?rev=739826&r1=739825&r2=739826&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/test/java/org/apache/myfaces/extensions/validator/AbstractExValViewControllerTestCase.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/test/java/org/apache/myfaces/extensions/validator/AbstractExValViewControllerTestCase.java Sun Feb  1 20:30:38 2009
@@ -38,6 +38,7 @@
 import junit.framework.TestCase;
 
 import org.apache.myfaces.extensions.validator.core.renderkit.DefaultRenderKitWrapperFactory;
+import org.apache.myfaces.extensions.validator.core.startup.ExtValStartupListener;
 import org.apache.myfaces.extensions.validator.crossval.CrossValidationPhaseListener;
 import org.apache.myfaces.extensions.validator.util.TestUtils;
 import org.apache.myfaces.extensions.validator.mock.ExtValMockApplicationFactory;
@@ -151,8 +152,7 @@
         renderKitFactory.addRenderKit("HTML_BASIC", renderKit);        
         
         // additional setup not provided automatically by the shale mock stuff
-        facesContext.getExternalContext().getApplicationMap().put(
-                MyfacesConfig.class.getName(), new MyfacesConfig());
+        facesContext.getExternalContext().getApplicationMap().put(MyfacesConfig.class.getName(), new MyfacesConfig());
         writer = new MockResponseWriter(new StringWriter(), null, null);
         facesContext.setResponseWriter(writer);
 
@@ -160,6 +160,16 @@
         TestUtils.addDefaultValidators(facesContext);
                 
         expressionFactory = (MockExpressionFactory)application.getExpressionFactory();
+
+        //execute startup listener
+        new ExtValStartupListener() {
+            @Override
+            protected void init()
+            {
+                super.init();
+            }
+        }.init();
+
         new PropertyValidationModuleStartupListener().init();
     }