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/10/11 22:06:13 UTC

svn commit: r703721 [1/2] - in /myfaces/extensions/validator/branches/jsf_1.1: core/src/main/java/org/apache/myfaces/extensions/validator/core/ core/src/main/java/org/apache/myfaces/extensions/validator/core/annotation/ core/src/main/java/org/apache/my...

Author: gpetracek
Date: Sat Oct 11 13:06:12 2008
New Revision: 703721

URL: http://svn.apache.org/viewvc?rev=703721&view=rev
Log:
basic support for other meta-data types

Added:
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningMetaDataExtractor.java
Removed:
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/annotation/
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidationStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningAnnotationExtractor.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/annotation/extractor/DefaultValueBindingScanningAnnotationExtractor.java
Modified:
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/SimpleAnnotationToValidationStrategyNameMapper.java
    myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/DoubleRangeMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JoinMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/JpaMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LengthMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/LongRangeMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/PatternMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/RequiredMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/metadata/transformer/ValidatorMetaDataTransformer.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/DoubleRangeStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JpaValidationStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LengthStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/LongRangeStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/PatternStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/RequiredStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/ValidatorStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationStorageEntry.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/ELCompareStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/referencing/strategy/LocalCompareStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCompareStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/AbstractCrossValidationStrategy.java
    myfaces/extensions/validator/branches/jsf_1.1/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/CrossValidationStrategy.java

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/CustomInfo.java Sat Oct 11 13:06:12 2008
@@ -29,7 +29,7 @@
 public enum CustomInfo
 {
     BASE_PACKAGE,
-    COMPONENT_ANNOTATION_EXTRACTOR,
+    COMPONENT_META_DATA_EXTRACTOR,
 
     VALIDATION_STRATEGY_POSTFIX,
     VALIDATION_ERROR_MESSAGE_RESOLVER_POSTFIX,
@@ -45,9 +45,9 @@
     MESSAGE_RESOLVER_FACTORY,
     VALIDATION_STRATEGY_FACTORY,
     COMPONENT_INITIALIZER_FACTORY,
-    COMPONENT_ANNOTATION_EXTRACTOR_FACTORY,
+    COMPONENT_META_DATA_EXTRACTOR_FACTORY,
     META_DATA_TRANSFORMER_FACTORY,
 
     CONVENTION_FOR_CUSTOM_MESSAGE_BUNDLE,
     STATIC_STRATEGY_MAPPING_SOURCE
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InformationProviderBean.java Sat Oct 11 13:06:12 2008
@@ -76,7 +76,7 @@
 
         customizableInfos.put(CustomInfo.BASE_PACKAGE, basePackage);
 
-        customizableInfos.put(CustomInfo.COMPONENT_ANNOTATION_EXTRACTOR, "ComponentAnnotationExtractor");
+        customizableInfos.put(CustomInfo.COMPONENT_META_DATA_EXTRACTOR, "ComponentMetaDataExtractor");
 
         customizableInfos.put(CustomInfo.VALIDATION_STRATEGY_POSTFIX, "ValidationStrategy");
         customizableInfos.put(CustomInfo.META_DATA_TRANSFORMER_POSTFIX, "MetaDataTransformer");
@@ -96,7 +96,7 @@
         customizableInfos.put(CustomInfo.MESSAGE_RESOLVER_FACTORY, "MessageResolverFactory");
         customizableInfos.put(CustomInfo.VALIDATION_STRATEGY_FACTORY, "ValidationStrategyFactory");
         customizableInfos.put(CustomInfo.COMPONENT_INITIALIZER_FACTORY, "ComponentInitializerFactory");
-        customizableInfos.put(CustomInfo.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY, "ComponentAnnotationExtractorFactory");
+        customizableInfos.put(CustomInfo.COMPONENT_META_DATA_EXTRACTOR_FACTORY, "ComponentAnnotationExtractorFactory");
         customizableInfos.put(CustomInfo.META_DATA_TRANSFORMER_FACTORY, "MetaDataTransformerFactory");
 
         //conventions (the rest of the conventions are built with the help of name mappers,...
@@ -138,4 +138,4 @@
                 return customizableInfos.get(CustomInfo.BASE_PACKAGE) + value;
         }
     }
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/InternalConventionProvider.java Sat Oct 11 13:06:12 2008
@@ -24,8 +24,6 @@
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 
-import java.lang.annotation.Annotation;
-
 /**
  * @author Gerhard Petracek
  * @since 1.x.1
@@ -90,9 +88,9 @@
     /**
      * use a custom name mapper to implement custom conventions
      */
-    public static String getValidationStrategyClassName(Annotation annotation)
+    public static String getValidationStrategyClassName(String metaDataKey)
     {
-        return annotation.annotationType().getName().replace(".annotation.", ".strategy.") + "Strategy";
+        return metaDataKey.replace(".annotation.", ".strategy.") + "Strategy";
     }
 
     public static String getMetaDataTransformerClassName(String validationStrategyName)
@@ -112,4 +110,4 @@
         }
         return validationStrategyName + targetPostfix;
     }
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/WebXmlParameter.java Sat Oct 11 13:06:12 2008
@@ -43,8 +43,8 @@
     static final String CUSTOM_INFORMATION_PROVIDER_BEAN = WebXmlUtils
         .getInitParameter("CUSTOM_INFORMATION_PROVIDER_BEAN");
 
-    static final String CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR = WebXmlUtils
-        .getInitParameter("CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR");
+    static final String CUSTOM_COMPONENT_META_DATA_EXTRACTOR = WebXmlUtils
+        .getInitParameter("CUSTOM_COMPONENT_META_DATA_EXTRACTOR");
 
     static final String CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING = WebXmlUtils
         .getInitParameter("CUSTOM_STATIC_VALIDATION_STRATEGY_MAPPING");
@@ -73,8 +73,8 @@
     static final String CUSTOM_MESSAGE_RESOLVER_FACTORY = WebXmlUtils
         .getInitParameter("CUSTOM_MESSAGE_RESOLVER_FACTORY");
 
-    static final String CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR_FACTORY = WebXmlUtils
-        .getInitParameter("CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR_FACTORY");
+    static final String CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY = WebXmlUtils
+        .getInitParameter("CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY");
 
     static final String CUSTOM_META_DATA_TRANSFORMER_FACTORY = WebXmlUtils
         .getInitParameter("CUSTOM_META_DATA_TRANSFORMER_FACTORY");
@@ -93,4 +93,4 @@
 
     //there is nothing like DEACTIVATE_DEFAULT_VALIDATION_INTERCEPTOR
     //use ExtValContext.getContext().denyRendererInterceptor(...) within an extval-StartupListener
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/branches/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/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/DefaultFactoryFinder.java Sat Oct 11 13:06:12 2008
@@ -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.annotation.extractor.DefaultComponentAnnotationExtractorFactory;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.DefaultComponentMetaDataExtractorFactory;
 import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.core.CustomInfo;
@@ -73,8 +73,8 @@
         Object factory = null;
         switch (factoryName)
         {
-            case COMPONENT_ANNOTATION_EXTRACTOR_FACTORY:
-                factory = createComponentAnnotationExtractorFactory();
+            case COMPONENT_META_DATA_EXTRACTOR_FACTORY:
+                factory = createComponentMetaDataExtractorFactory();
                 break;
 
             case VALIDATION_STRATEGY_FACTORY:
@@ -111,19 +111,19 @@
         factoryMap.put(factoryName, factory);
     }
 
-    protected Object createComponentAnnotationExtractorFactory()
+    protected Object createComponentMetaDataExtractorFactory()
     {
         Object factory = null;
 
-        List<String> annotationExtractorFactoryClassNames = new ArrayList<String>();
+        List<String> metaDataExtractorFactoryClassNames = new ArrayList<String>();
 
-        annotationExtractorFactoryClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_ANNOTATION_EXTRACTOR_FACTORY);
-        annotationExtractorFactoryClassNames
+        metaDataExtractorFactoryClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR_FACTORY);
+        metaDataExtractorFactoryClassNames
             .add(ExtValContext.getContext().getInformationProviderBean()
-                .get(CustomInfo.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY));
-        annotationExtractorFactoryClassNames.add(DefaultComponentAnnotationExtractorFactory.class.getName());
+                .get(CustomInfo.COMPONENT_META_DATA_EXTRACTOR_FACTORY));
+        metaDataExtractorFactoryClassNames.add(DefaultComponentMetaDataExtractorFactory.class.getName());
 
-        for (String className : annotationExtractorFactoryClassNames)
+        for (String className : metaDataExtractorFactoryClassNames)
         {
             factory = ClassUtils.tryToInstantiateClassForName(className);
 

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/factory/FactoryNames.java Sat Oct 11 13:06:12 2008
@@ -28,7 +28,7 @@
 @UsageInformation({UsageCategory.API})
 public enum FactoryNames
 {
-    COMPONENT_ANNOTATION_EXTRACTOR_FACTORY,
+    COMPONENT_META_DATA_EXTRACTOR_FACTORY,
     VALIDATION_STRATEGY_FACTORY,
     MESSAGE_RESOLVER_FACTORY,
     META_DATA_TRANSFORMER_FACTORY,

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java Sat Oct 11 13:06:12 2008
@@ -22,9 +22,9 @@
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
 import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
-import org.apache.myfaces.extensions.validator.core.annotation.extractor.AnnotationExtractor;
-import org.apache.myfaces.extensions.validator.core.annotation.extractor.AnnotationExtractorFactory;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractor;
+import org.apache.myfaces.extensions.validator.core.metadata.extractor.MetaDataExtractorFactory;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.core.factory.FactoryNames;
 import org.apache.myfaces.extensions.validator.core.recorder.ProcessedInformationRecorder;
@@ -68,14 +68,13 @@
         ValidationStrategy validationStrategy;
         MetaDataTransformer metaDataTransformer;
 
-        AnnotationExtractor annotationExtractor = ExtValContext.getContext().getFactoryFinder().getFactory(
-            FactoryNames.COMPONENT_ANNOTATION_EXTRACTOR_FACTORY, AnnotationExtractorFactory.class).create();
+        MetaDataExtractor metaDataExtractor = ExtValContext.getContext().getFactoryFinder().getFactory(
+            FactoryNames.COMPONENT_META_DATA_EXTRACTOR_FACTORY, MetaDataExtractorFactory.class).create();
 
         Map<String, Object> metaData;
-        for (AnnotationEntry entry : annotationExtractor.extractAnnotations(facesContext, uiComponent))
+        for (MetaDataEntry entry : metaDataExtractor.extract(facesContext, uiComponent).getMetaDataEntries())
         {
-
-            validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(entry.getAnnotation());
+            validationStrategy = ExtValUtils.getValidationStrategyForMetaData(entry.getKey());
 
             if (validationStrategy != null)
             {
@@ -140,17 +139,17 @@
 
         ValidationStrategy validationStrategy;
 
-        AnnotationExtractor annotationExtractor = ExtValUtils.getAnnotationExtractor();
+        MetaDataExtractor metaDataExtractor = ExtValUtils.getAnnotationExtractor();
 
-        for (AnnotationEntry entry : annotationExtractor.extractAnnotations(facesContext, uiComponent))
+        for (MetaDataEntry entry : metaDataExtractor.extract(facesContext, uiComponent).getMetaDataEntries())
         {
-            validationStrategy = ExtValUtils.getValidationStrategyForAnnotation(entry.getAnnotation());
+            validationStrategy = ExtValUtils.getValidationStrategyForMetaData(entry.getKey());
 
             if (validationStrategy != null)
             {
                 if(logger.isTraceEnabled())
                 {
-                    logger.trace("validate " + entry.getAnnotation().getClass().getName() + " with " +
+                    logger.trace("validate " + entry.getValue() + " with " +
                             validationStrategy.getClass().getName());
                 }
 
@@ -161,7 +160,7 @@
                 if(logger.isTraceEnabled())
                 {
                     logger.trace("no validation strategy found for "
-                            + entry.getAnnotation().annotationType().getName());
+                            + entry.getValue());
                 }
             }
         }

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/DefaultSourceInformation.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,69 @@
+/*
+ * 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.metadata;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.Map;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultSourceInformation implements SourceInformation
+{
+    private Map<String, Object> properties = new HashMap<String, Object>();
+    private List<MetaDataEntry> metaDataList = new ArrayList<MetaDataEntry>();
+
+    public boolean containsProperty(String key)
+    {
+        return properties.containsKey(key);
+    }
+
+    public Object getProperty(String key)
+    {
+        return properties.get(key);
+    }
+
+    public <T> T getProperty(String key, Class<T> targetClass)
+    {
+        return (T)getProperty(key);
+    }
+
+    public void setProperty(String key, Object value)
+    {
+        properties.put(key, value);
+    }
+
+    public MetaDataEntry[] getMetaDataEntries()
+    {
+        return metaDataList.toArray(new MetaDataEntry[metaDataList.size()]);
+    }
+
+    public void addMetaDataEntry(MetaDataEntry metaDataEntry)
+    {
+        metaDataEntry.setProperties(this.properties);
+        this.metaDataList.add(metaDataEntry);
+    }
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/MetaDataEntry.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,79 @@
+/*
+ * 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.metadata;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * Data holder which stores the annotation and some information where the annotation was around.
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public class MetaDataEntry
+{
+    private String key;
+    private Object value;
+    private Map<String, Object> properties = new HashMap<String, Object>();
+
+    public String getKey()
+    {
+        return key;
+    }
+
+    public void setKey(String key)
+    {
+        this.key = key;
+    }
+
+    public Object getValue()
+    {
+        return value;
+    }
+
+    public <T> T getValue(Class<T> targetClass)
+    {
+        return (T)getValue();
+    }
+
+    public void setValue(Object value)
+    {
+        this.value = value;
+    }
+
+    public void setProperties(Map<String, Object> properties)
+    {
+        this.properties = properties;
+    }
+
+    public Object getProperty(String key)
+    {
+        return this.properties.get(key);
+    }
+
+    public <T> T getProperty(String key, Class<T> targetClass)
+    {
+        return (T)getProperty(key);
+    }
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/PropertySourceInformationKeys.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,32 @@
+/*
+ * 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.metadata;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public interface PropertySourceInformationKeys
+{
+    static final String VALUE_BINDING_EXPRESSION = "value_binding_expression";
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/SourceInformation.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,38 @@
+/*
+ * 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.metadata;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+/**
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public interface SourceInformation
+{
+    boolean containsProperty(String key);
+    Object getProperty(String key);
+    <T> T getProperty(String key, Class<T> targetClass);
+    void setProperty(String key, Object value);
+
+    MetaDataEntry[] getMetaDataEntries();
+    void addMetaDataEntry(MetaDataEntry metaDataEntry);
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,218 @@
+/*
+ * 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.metadata.extractor;
+
+import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
+import org.apache.myfaces.extensions.validator.core.metadata.SourceInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.DefaultSourceInformation;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.PropertySourceInformationKeys;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import java.lang.annotation.Annotation;
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * Default implementation which extracts the annotations of the value binding of a component.
+ * It extracts the annotation of the field and the property.
+ * (Also the annotations of super classes and interfaces.)
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultComponentMetaDataExtractor implements MetaDataExtractor
+{
+    protected final Log logger = LogFactory.getLog(getClass());
+
+    public DefaultComponentMetaDataExtractor()
+    {
+        if(logger.isDebugEnabled())
+        {
+            logger.debug(getClass().getName() + " instantiated");
+        }
+    }
+
+    @ToDo(Priority.MEDIUM)
+    public SourceInformation extract(FacesContext facesContext, Object object)
+    {
+        SourceInformation sourceInformation = new DefaultSourceInformation();
+
+        //should never occur
+        if (!(object instanceof UIComponent))
+        {
+            return sourceInformation;
+        }
+
+        UIComponent uiComponent = (UIComponent) object;
+
+        if(logger.isTraceEnabled())
+        {
+            logger.trace("start extracting meta-data of " + uiComponent.getClass().getName());
+        }
+
+        ValueBindingExpression vbe =
+            ExtValUtils.getELHelper().getValueBindingExpression(uiComponent);
+
+        if (vbe == null)
+        {
+            return sourceInformation;
+        }
+
+        /*
+         * get bean class and property name
+         */
+        Class entityClass = ExtValUtils.getELHelper()
+            .getTypeOfValueBindingForExpression(facesContext, vbe.getBaseExpression());
+
+        //create template entry
+        //TODO test with complex components
+        sourceInformation.setProperty(
+            PropertySourceInformationKeys.VALUE_BINDING_EXPRESSION, vbe.getExpressionString());
+
+        /*
+         * find and add annotations
+         */
+        Class currentClass = entityClass;
+
+        while (!Object.class.getName().equals(currentClass.getName()))
+        {
+            //TODO map syntax support
+            addPropertyAccessAnnotations(currentClass, vbe.getProperty(), sourceInformation);
+            addFieldAccessAnnotations(currentClass, vbe.getProperty(), sourceInformation);
+
+            currentClass = currentClass.getSuperclass();
+        }
+
+        for (Class currentInterface : entityClass.getInterfaces())
+        {
+            currentClass = currentInterface;
+
+            while (currentClass != null)
+            {
+                addPropertyAccessAnnotations(currentClass, vbe.getProperty(), sourceInformation);
+
+                currentClass = currentClass.getSuperclass();
+            }
+        }
+
+        if(logger.isTraceEnabled())
+        {
+            logger.trace("extract finished");
+        }
+
+        return sourceInformation;
+    }
+
+    protected void addPropertyAccessAnnotations(Class entity, String property,
+                                                SourceInformation sourceInformation)
+    {
+        property = property.substring(0, 1).toUpperCase() + property.substring(1);
+
+        Method method;
+
+        try
+        {
+            method = entity.getDeclaredMethod("get" + property);
+        }
+        catch (NoSuchMethodException e)
+        {
+            try
+            {
+                method = entity.getDeclaredMethod("is" + property);
+            }
+            catch (NoSuchMethodException e1)
+            {
+                if(logger.isTraceEnabled())
+                {
+                    logger.trace("method not found - class: " + entity.getName()
+                        + " - methods: " + "get" + property + " " + "is" + property);
+                }
+
+                return;
+            }
+        }
+
+        addAnnotationToAnnotationEntries(Arrays.asList(method.getAnnotations()), sourceInformation);
+    }
+
+    protected void addFieldAccessAnnotations(Class entity, String property,
+                                             SourceInformation sourceInformation)
+    {
+        Field field;
+
+        try
+        {
+            field = entity.getDeclaredField(property);
+        }
+        catch (Exception e)
+        {
+            try
+            {
+                field = entity.getDeclaredField("_" + property);
+            }
+            catch (NoSuchFieldException e1)
+            {
+                if(logger.isTraceEnabled())
+                {
+                    logger.trace("field " + property + " or _" + property + " not found", e1);
+                }
+
+                return;
+            }
+        }
+
+        addAnnotationToAnnotationEntries(Arrays.asList(field.getAnnotations()), sourceInformation);
+    }
+
+    protected void addAnnotationToAnnotationEntries(
+        List<Annotation> annotations, SourceInformation sourceInformation)
+    {
+        for (Annotation annotation : annotations)
+        {
+            sourceInformation.addMetaDataEntry(createAnnotationEntry(annotation));
+
+            if(logger.isTraceEnabled())
+            {
+                logger.trace(annotation.getClass().getName() + " found");
+            }
+        }
+    }
+
+    protected MetaDataEntry createAnnotationEntry(Annotation foundAnnotation)
+    {
+        MetaDataEntry entry = new MetaDataEntry();
+
+        entry.setKey(foundAnnotation.annotationType().getName());
+        entry.setValue(foundAnnotation);
+
+        return entry;
+    }
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractorFactory.java Sat Oct 11 13:06:12 2008
@@ -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.metadata.extractor;
+
+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.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * This factory creates an annotation extractor which extracts the annotation
+ * of the value binding of a component.
+ * <p/>
+ * order:<br/>
+ * <ol>
+ *   <li>configured annotation extractor (web.xml)</li>
+ *   <li>configured annotation extractor (information provider bean)</li>
+ *   <li>default implementation</li>
+ * </ol>
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class DefaultComponentMetaDataExtractorFactory implements MetaDataExtractorFactory
+{
+    private final Log logger = LogFactory.getLog(getClass());
+
+    private static MetaDataExtractor metaDataExtractor = null;
+
+    public DefaultComponentMetaDataExtractorFactory()
+    {
+        if(logger.isDebugEnabled())
+        {
+            logger.debug(getClass().getName() + " instantiated");
+        }
+    }
+
+    @ToDo(value = Priority.MEDIUM, description = "logging")
+    public MetaDataExtractor create()
+    {
+        if (metaDataExtractor == null)
+        {
+            List<String> metaDataExtractorClassNames = new ArrayList<String>();
+
+            metaDataExtractorClassNames.add(WebXmlParameter.CUSTOM_COMPONENT_META_DATA_EXTRACTOR);
+            metaDataExtractorClassNames
+                .add(ExtValContext.getContext().getInformationProviderBean()
+                    .get(CustomInfo.COMPONENT_META_DATA_EXTRACTOR));
+            metaDataExtractorClassNames.add(DefaultComponentMetaDataExtractor.class.getName());
+
+            for (String className : metaDataExtractorClassNames)
+            {
+                metaDataExtractor = (MetaDataExtractor) ClassUtils.tryToInstantiateClassForName(className);
+
+                if (metaDataExtractor != null)
+                {
+                    break;
+                }
+            }
+        }
+
+        if(logger.isTraceEnabled())
+        {
+            logger.trace(metaDataExtractor.getClass().getName() + " created");
+        }
+
+        return metaDataExtractor;
+    }
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractor.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,38 @@
+/*
+ * 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.metadata.extractor;
+
+import org.apache.myfaces.extensions.validator.core.metadata.SourceInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+import javax.faces.context.FacesContext;
+
+/**
+ * An annotation extractor is responsible to analyze an object
+ * and returns all available annotations
+ * 
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public interface MetaDataExtractor
+{
+    SourceInformation extract(FacesContext facesContext, Object object);
+}

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/MetaDataExtractorFactory.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,34 @@
+/*
+ * 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.metadata.extractor;
+
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+
+/**
+ * The interface for all factories which create annotation extractors
+ * 
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation(UsageCategory.API)
+public interface MetaDataExtractorFactory
+{
+    MetaDataExtractor create();
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/AbstractMetaDataTransformer.java Sat Oct 11 13:06:12 2008
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -48,9 +48,9 @@
         }
     }
 
-    public final Map<String, Object> convertMetaData(AnnotationEntry annotationEntry)
+    public final Map<String, Object> convertMetaData(MetaDataEntry metaDataEntry)
     {
-        if(skipValidation(annotationEntry))
+        if(skipValidation(metaDataEntry))
         {
             if(logger.isTraceEnabled())
             {
@@ -61,26 +61,26 @@
             return results;
         }
 
-        return convert(annotationEntry);
+        return convert(metaDataEntry);
     }
 
-    protected boolean skipValidation(AnnotationEntry annotationEntry)
+    protected boolean skipValidation(MetaDataEntry metaDataEntry)
     {
         FacesContext facesContext = FacesContext.getCurrentInstance();
 
         Boolean result = (Boolean) ExtValUtils.getELHelper()
-            .getValueOfExpression(facesContext, new ValueBindingExpression(getSkipExpression(annotationEntry)));
+            .getValueOfExpression(facesContext, new ValueBindingExpression(getSkipExpression(metaDataEntry)));
 
         if(logger.isTraceEnabled())
         {
             logger.trace(getClass() + "#skipValidation result of getSkipExpression: "
-                + getSkipExpression(annotationEntry));
+                + getSkipExpression(metaDataEntry));
         }
 
         return result;
     }
 
-    protected String getSkipExpression(AnnotationEntry annotationEntry)
+    protected String getSkipExpression(MetaDataEntry metaDataEntry)
     {
         return "#{false}"; //default - don't skip
     }
@@ -94,5 +94,5 @@
         return new ArrayList<String>();
     }
 
-    protected abstract Map<String, Object> convert(AnnotationEntry annotation);
+    protected abstract Map<String, Object> convert(MetaDataEntry metaData);
 }

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/BeanMetaDataTransformerAdapterImpl.java Sat Oct 11 13:06:12 2008
@@ -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.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -48,23 +48,23 @@
     private MetaDataTransformer metaDataTransformer;
     private String metaDataTransformerClassName;
 
-    public Map<String, Object> convert(AnnotationEntry annotationEntry)
+    public Map<String, Object> convert(MetaDataEntry metaDataEntry)
     {
         if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
         {
-            return ((AbstractMetaDataTransformer)this.metaDataTransformer).convert(annotationEntry);
+            return ((AbstractMetaDataTransformer)this.metaDataTransformer).convert(metaDataEntry);
         }
-        return this.metaDataTransformer.convertMetaData(annotationEntry);
+        return this.metaDataTransformer.convertMetaData(metaDataEntry);
     }
 
     @Override
-    protected String getSkipExpression(AnnotationEntry annotation)
+    protected String getSkipExpression(MetaDataEntry metaData)
     {
         if(this.metaDataTransformer instanceof AbstractMetaDataTransformer)
         {
-            return ((AbstractMetaDataTransformer)this.metaDataTransformer).getSkipExpression(annotation);
+            return ((AbstractMetaDataTransformer)this.metaDataTransformer).getSkipExpression(metaData);
         }
-        return super.getSkipExpression(annotation);
+        return super.getSkipExpression(metaData);
     }
 
     @Override

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/MetaDataTransformer.java Sat Oct 11 13:06:12 2008
@@ -20,7 +20,7 @@
 
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 
 import java.util.Map;
 
@@ -32,5 +32,5 @@
 //*Transformer instead of *Converter to avoid naming confusion 
 public interface MetaDataTransformer
 {
-    Map<String, Object> convertMetaData(AnnotationEntry annotation);
+    Map<String, Object> convertMetaData(MetaDataEntry metaData);
 }

Added: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java?rev=703721&view=auto
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java (added)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractAnnotationValidationStrategy.java Sat Oct 11 13:06:12 2008
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.myfaces.extensions.validator.core.validation.strategy;
+
+import org.apache.myfaces.extensions.validator.core.validation.message.resolver.MessageResolver;
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import java.lang.annotation.Annotation;
+import java.util.Locale;
+import java.util.MissingResourceException;
+
+/**
+ * Provides the ability of message resolving to ValidationStrategies
+ *
+ * @author Gerhard Petracek
+ * @since 1.x.1
+ */
+@UsageInformation({UsageCategory.INTERNAL, UsageCategory.REUSE})
+public abstract class AbstractAnnotationValidationStrategy extends AbstractValidatorAdapter
+{
+    protected static final String DETAIL_MESSAGE_KEY_POSTFIX = "_details";
+    private MessageResolver messageResolver;
+
+    protected String resolveMessage(String key)
+    {
+        Locale locale = FacesContext.getCurrentInstance().getViewRoot().getLocale();
+
+        return this.messageResolver != null ? this.messageResolver.getMessage(key, locale) :
+            ExtValUtils.getMessageResolverForValidationStrategy(this).getMessage(key, locale);
+    }
+
+    protected String getErrorMessageSummary(Annotation annotation)
+    {
+        return resolveMessage(getValidationErrorMsgKey(annotation));
+    }
+
+    protected String getErrorMessageDetails(Annotation annotation)
+    {
+        try
+        {
+            String key = getValidationErrorMsgKey(annotation);
+            return (key != null) ? resolveMessage(key + DETAIL_MESSAGE_KEY_POSTFIX) : null;
+        }
+        catch (MissingResourceException e)
+        {
+            if(logger.isWarnEnabled())
+            {
+                logger.warn("couldn't find key " + getValidationErrorMsgKey(annotation) + DETAIL_MESSAGE_KEY_POSTFIX,
+                        e);
+            }
+        }
+        return null;
+    }
+
+    protected FacesMessage getValidationErrorFacesMassage(Annotation annotation)
+    {
+        return new FacesMessage(FacesMessage.SEVERITY_ERROR,
+            getErrorMessageSummary(annotation), getErrorMessageDetails(annotation));
+    }
+
+    protected abstract String getValidationErrorMsgKey(Annotation annotation);
+
+    public void setMessageResolver(MessageResolver messageResolver)
+    {
+        this.messageResolver = messageResolver;
+    }
+}

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/AbstractValidatorAdapter.java Sat Oct 11 13:06:12 2008
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.extensions.validator.core.validation.strategy;
 
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.el.ValueBindingExpression;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -30,7 +30,6 @@
 import javax.faces.context.FacesContext;
 import javax.faces.convert.ConverterException;
 import javax.faces.validator.ValidatorException;
-import java.lang.annotation.Annotation;
 
 /**
  * Provides the ability to use ValidatorException (as expected by the user) instead of ConverterException.
@@ -58,14 +57,14 @@
     }
 
     public void validate(FacesContext facesContext, UIComponent uiComponent,
-                         AnnotationEntry annotationEntry, Object convertedObject)
+                         MetaDataEntry metaDataEntry, Object convertedObject)
     {
         if(logger.isTraceEnabled())
         {
             logger.trace("start initValidation of " + getClass().getName());
         }
 
-        if(skipValidation(facesContext, uiComponent, annotationEntry, convertedObject))
+        if(skipValidation(facesContext, uiComponent, metaDataEntry, convertedObject))
         {
             if(logger.isTraceEnabled())
             {
@@ -74,7 +73,7 @@
             return;
         }
 
-        initValidation(facesContext, uiComponent, annotationEntry, convertedObject);
+        initValidation(facesContext, uiComponent, metaDataEntry, convertedObject);
 
         if(logger.isTraceEnabled())
         {
@@ -88,7 +87,7 @@
                 logger.trace("start processValidation of " + getClass().getName());
             }
 
-            processValidation(facesContext, uiComponent, annotationEntry, convertedObject);
+            processValidation(facesContext, uiComponent, metaDataEntry, convertedObject);
 
             if(logger.isTraceEnabled())
             {
@@ -103,7 +102,7 @@
             }
 
             if (processAfterValidatorException(facesContext, uiComponent,
-                annotationEntry, convertedObject, e))
+                metaDataEntry, convertedObject, e))
             {
                 if(logger.isTraceEnabled())
                 {
@@ -123,9 +122,9 @@
     }
 
     protected boolean skipValidation(FacesContext facesContext, UIComponent uiComponent,
-                                     AnnotationEntry annotationEntry, Object convertedObject)
+                                     MetaDataEntry metaDataEntry, Object convertedObject)
     {
-        String expression = getSkipExpression(annotationEntry.getAnnotation());
+        String expression = getSkipExpression(metaDataEntry.getValue());
 
         //just for a better performance for "none-skipable" strategies
         if(DO_NOT_SKIP.equals(expression))
@@ -144,14 +143,14 @@
         return result;
     }
 
-    protected String getSkipExpression(Annotation annotation)
+    protected String getSkipExpression(Object metaData)
     {
         return DO_NOT_SKIP;
     }
 
     protected void initValidation(FacesContext facesContext,
                                   UIComponent uiComponent,
-                                  AnnotationEntry annotationEntry,
+                                  MetaDataEntry metaDataEntry,
                                   Object convertedObject)
     {
         //override if needed
@@ -159,13 +158,13 @@
 
     //override if needed
     protected boolean processAfterValidatorException(FacesContext facesContext,
-                                                     UIComponent uiComponent, AnnotationEntry annotationEntry,
+                                                     UIComponent uiComponent, MetaDataEntry metaDataEntry,
                                                      Object convertedObject, ValidatorException e)
     {
         return true;
     }
 
     protected abstract void processValidation(FacesContext facesContext,
-                                              UIComponent uiComponent, AnnotationEntry annotationEntry,
+                                              UIComponent uiComponent, MetaDataEntry metaDataEntry,
                                               Object convertedObject) throws ValidatorException;
 }

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/BeanValidationStrategyAdapterImpl.java Sat Oct 11 13:06:12 2008
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.extensions.validator.core.validation.strategy;
 
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+import org.apache.myfaces.extensions.validator.core.metadata.MetaDataEntry;
 import org.apache.myfaces.extensions.validator.core.metadata.transformer.MetaDataTransformer;
 import org.apache.myfaces.extensions.validator.core.metadata.transformer.BeanMetaDataTransformerAdapter;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
@@ -59,10 +59,10 @@
 
     public void validate(FacesContext facesContext,
                          UIComponent uiComponent,
-                         AnnotationEntry annotationEntry,
+                         MetaDataEntry metaDataEntry,
                          Object convertedObject)
     {
-        this.validationStrategy.validate(facesContext, uiComponent, annotationEntry, convertedObject);
+        this.validationStrategy.validate(facesContext, uiComponent, metaDataEntry, convertedObject);
     }
 
     public String getValidationStrategyClassName()

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/DefaultValidationStrategyFactory.java Sat Oct 11 13:06:12 2008
@@ -46,7 +46,6 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.lang.annotation.Annotation;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -62,33 +61,34 @@
  */
 @ToDo(value = Priority.MEDIUM, description = "add generic java api (de-/register mapping)")
 @UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
-public class DefaultValidationStrategyFactory implements ClassMappingFactory<Annotation, ValidationStrategy>
+public class DefaultValidationStrategyFactory implements ClassMappingFactory<String, ValidationStrategy>
 {
     protected final Log logger = LogFactory.getLog(getClass());
 
     private static Map<String, String> annotationStrategyMapping = null;
-    private static List<NameMapper<Annotation>> nameMapperList = new ArrayList<NameMapper<Annotation>>();
+    private static List<NameMapper<String>> metaDataKeyToValidationStrategyNameMapperList =
+        new ArrayList<NameMapper<String>>();
 
     static
     {
-        nameMapperList
+        metaDataKeyToValidationStrategyNameMapperList
             .add(new CustomConfiguredAnnotationToValidationStrategyNameMapper());
-        nameMapperList
+        metaDataKeyToValidationStrategyNameMapperList
             .add(new CustomConventionAnnotationToValidationStrategyNameMapper());
-        nameMapperList
+        metaDataKeyToValidationStrategyNameMapperList
             .add(new DefaultAnnotationToValidationStrategyNameMapper());
-        nameMapperList
+        metaDataKeyToValidationStrategyNameMapperList
             .add(new SimpleAnnotationToValidationStrategyNameMapper());
 
-        nameMapperList
+        metaDataKeyToValidationStrategyNameMapperList
             .add(new AnnotationToValidationStrategyBeanNameMapper(
                 new CustomConfiguredAnnotationToValidationStrategyNameMapper()));
-        nameMapperList
+        metaDataKeyToValidationStrategyNameMapperList
             .add(new AnnotationToValidationStrategyBeanNameMapper(
                 new CustomConventionAnnotationToValidationStrategyNameMapper()));
-        nameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
+        metaDataKeyToValidationStrategyNameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
             new DefaultAnnotationToValidationStrategyNameMapper()));
-        nameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
+        metaDataKeyToValidationStrategyNameMapperList.add(new AnnotationToValidationStrategyBeanNameMapper(
             new SimpleAnnotationToValidationStrategyNameMapper()));
     }
 
@@ -100,26 +100,24 @@
         }
     }
 
-    public ValidationStrategy create(Annotation annotation)
+    public ValidationStrategy create(String metaDataKey)
     {
         if (annotationStrategyMapping == null)
         {
             initStaticMappings();
         }
 
-        String annotationName = annotation.annotationType().getName();
-
-        if (annotationStrategyMapping.containsKey(annotationName))
+        if (annotationStrategyMapping.containsKey(metaDataKey))
         {
-            return getValidationStrategyInstance(annotationStrategyMapping.get(annotationName));
+            return getValidationStrategyInstance(annotationStrategyMapping.get(metaDataKey));
         }
 
         ValidationStrategy validationStrategy;
         String strategyName;
         //null -> use name mappers
-        for (NameMapper<Annotation> nameMapper : nameMapperList)
+        for (NameMapper<String> nameMapper : metaDataKeyToValidationStrategyNameMapperList)
         {
-            strategyName = nameMapper.createName(annotation);
+            strategyName = nameMapper.createName(metaDataKey);
 
             if (strategyName == null)
             {
@@ -130,11 +128,10 @@
 
             if (validationStrategy != null)
             {
-                addMapping(annotationName, strategyName);
+                addMapping(metaDataKey, strategyName);
                 return validationStrategy;
             }
         }
-
         return null;
     }
 

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/ValidationStrategy.java Sat Oct 11 13:06:12 2008
@@ -18,7 +18,7 @@
  */
 package org.apache.myfaces.extensions.validator.core.validation.strategy;
 
-import org.apache.myfaces.extensions.validator.core.annotation.AnnotationEntry;
+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;
 
@@ -36,5 +36,5 @@
 public interface ValidationStrategy
 {
     void validate(FacesContext facesContext, UIComponent uiComponent,
-                  AnnotationEntry annotationEntry, Object convertedObject);
+                  MetaDataEntry metaDataEntry, Object convertedObject);
 }

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AbstractAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -24,14 +24,12 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
-import java.lang.annotation.Annotation;
-
 /**
  * @author Gerhard Petracek
  * @since 1.x.1
  */
 @UsageInformation(UsageCategory.INTERNAL)
-public abstract class AbstractAnnotationToValidationStrategyNameMapper implements NameMapper<Annotation>
+public abstract class AbstractAnnotationToValidationStrategyNameMapper implements NameMapper<String>
 {
     protected final Log logger = LogFactory.getLog(getClass());
 

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/AnnotationToValidationStrategyBeanNameMapper.java Sat Oct 11 13:06:12 2008
@@ -22,8 +22,6 @@
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
-import java.lang.annotation.Annotation;
-
 /**
  * Name Mapper which delegates the name mapping, extract the name and convert it to a bean name + prefix
  * target: configure a validation strategy via a managed bean facility -> allows to inject other beans
@@ -42,14 +40,14 @@
     AbstractAnnotationToValidationStrategyNameMapper
 {
     public static final String PREFIX_FOR_BEAN_MAPPING = "bean:";
-    private NameMapper<Annotation> wrapped;
+    private NameMapper<String> wrapped;
 
-    public AnnotationToValidationStrategyBeanNameMapper(NameMapper<Annotation> nameMapper)
+    public AnnotationToValidationStrategyBeanNameMapper(NameMapper<String> nameMapper)
     {
         this.wrapped = nameMapper;
     }
 
-    public String createName(Annotation source)
+    public String createName(String source)
     {
         String name = wrapped.createName(source);
 

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConfiguredAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -23,8 +23,6 @@
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
-import java.lang.annotation.Annotation;
-
 /**
  * To provide a custom NameMapper to map Annotations to ValidationStrategies.
  * (configured via web.xml)
@@ -34,7 +32,7 @@
  */
 @UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
 public class CustomConfiguredAnnotationToValidationStrategyNameMapper extends
-    AbstractCustomNameMapper<Annotation>
+    AbstractCustomNameMapper<String>
 {
     protected String getCustomNameMapperClassName()
     {

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/CustomConventionAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -24,8 +24,6 @@
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
-import java.lang.annotation.Annotation;
-
 /**
  * To provide a custom NameMapper to map Annotations to ValidationStrategies.
  * (configured via information provider bean)
@@ -37,7 +35,7 @@
  */
 @UsageInformation({UsageCategory.INTERNAL, UsageCategory.CUSTOMIZABLE})
 public class CustomConventionAnnotationToValidationStrategyNameMapper extends
-    AbstractCustomNameMapper<Annotation>
+    AbstractCustomNameMapper<String>
 {
     protected String getCustomNameMapperClassName()
     {

Modified: myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java?rev=703721&r1=703720&r2=703721&view=diff
==============================================================================
--- myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java (original)
+++ myfaces/extensions/validator/branches/jsf_1.1/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/strategy/mapper/DefaultAnnotationToValidationStrategyNameMapper.java Sat Oct 11 13:06:12 2008
@@ -22,8 +22,6 @@
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
-import java.lang.annotation.Annotation;
-
 /**
  * Default implementation which maps ExtVal Annotations to ExtVal ValidationStrategies.
  *
@@ -34,8 +32,8 @@
 public class DefaultAnnotationToValidationStrategyNameMapper extends
     AbstractAnnotationToValidationStrategyNameMapper
 {
-    public String createName(Annotation annotation)
+    public String createName(String metaDataKey)
     {
-        return InternalConventionProvider.getValidationStrategyClassName(annotation);
+        return InternalConventionProvider.getValidationStrategyClassName(metaDataKey);
     }
 }