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 2010/03/09 17:35:55 UTC

svn commit: r920970 - in /myfaces/extensions/validator/trunk: component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ core/src/main/j...

Author: gpetracek
Date: Tue Mar  9 16:35:54 2010
New Revision: 920970

URL: http://svn.apache.org/viewvc?rev=920970&view=rev
Log:
EXTVAL-87 first step

Added:
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ProxyUtils.java
Modified:
    myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRenderKit.java
    myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRendererWrapper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.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/metadata/transformer/mapper/DefaultValidationStrategyToMetaDataTransformerNameMapper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/SimpleValidationStrategyToMetaDataTransformerNameMapper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererProxy.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/AbstractStorageManager.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultMetaDataStorage.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultPropertyStorage.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/message/resolver/mapper/DefaultValidationStrategyToMsgResolverNameMapper.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ExtValUtils.java
    myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java
    myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationModuleValidationInterceptorInternals.java
    myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/extractor/DefaultGroupControllerScanningExtractor.java
    myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/JoinValidationMetaDataStorageFilter.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java
    myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/PropertyValidationUtils.java

Modified: myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRenderKit.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRenderKit.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRenderKit.java (original)
+++ myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRenderKit.java Tue Mar  9 16:35:54 2010
@@ -21,6 +21,7 @@ package org.apache.myfaces.extensions.va
 import org.apache.myfaces.extensions.validator.core.renderkit.ExtValRenderKit;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.faces.render.RenderKit;
 import javax.faces.render.Renderer;
@@ -42,8 +43,7 @@ public class ExtValGenericRenderKit exte
         Class currentClass = renderKit.getClass();
 
         //it's not possible to wrap the converter again - occurs e.g. under solaris + bea weblogic
-        if (currentClass.getName().contains("$$EnhancerByCGLIB$$")
-            || currentClass.getName().contains("$$FastClassByCGLIB$$"))
+        if (ProxyUtils.isProxiedClass(currentClass))
         {
             return renderKit;
         }

Modified: myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRendererWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRendererWrapper.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRendererWrapper.java (original)
+++ myfaces/extensions/validator/trunk/component-support/generic-support/src/main/java/org/apache/myfaces/extensions/validator/generic/renderkit/ExtValGenericRendererWrapper.java Tue Mar  9 16:35:54 2010
@@ -21,6 +21,7 @@ package org.apache.myfaces.extensions.va
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.core.renderkit.ExtValRendererWrapper;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -43,8 +44,7 @@ public final class ExtValGenericRenderer
         Class currentClass = renderer.getClass();
 
         //to avoid re-wrapping - occurs e.g. under solaris + bea weblogic
-        if (currentClass.getName().contains("$$EnhancerByCGLIB$$") ||
-            currentClass.getName().contains("$$FastClassByCGLIB$$"))
+        if (ProxyUtils.isProxiedClass(currentClass))
         {
             return renderer;
         }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/DefaultELHelper.java Tue Mar  9 16:35:54 2010
@@ -24,6 +24,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.internal.Priority;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.core.WebXmlParameter;
 import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
 import org.apache.myfaces.extensions.validator.ExtValInformation;
@@ -71,7 +72,7 @@ public class DefaultELHelper implements 
     {
         //due to a restriction with the ri
         Object bean = getValueOfExpression(facesContext, valueBindingExpression);
-        return (bean != null) ? bean.getClass() : null;
+        return (bean != null) ? ProxyUtils.getUnproxiedClass(bean.getClass()) : null;
     }
 
     public Object getBean(String beanName)
@@ -248,10 +249,12 @@ public class DefaultELHelper implements 
 
         Method currentMethod;
         String currentPropertyName;
+        Class currentClassOfPropertyValue;
         for(int i = 1; i < properties.length; i++)
         {
             currentPropertyName = properties[i];
-            currentMethod = ReflectionUtils.tryToGetMethod(currentPropertyValue.getClass(),
+            currentClassOfPropertyValue = ProxyUtils.getUnproxiedClass(currentPropertyValue.getClass());
+            currentMethod = ReflectionUtils.tryToGetMethod(currentClassOfPropertyValue,
                 "get" + currentPropertyName.substring(0, 1).toUpperCase() + currentPropertyName.substring(1));
 
             if(currentMethod == null && currentPropertyValue instanceof Map)

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/el/ExtValELResolver.java Tue Mar  9 16:35:54 2010
@@ -22,6 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.el.ELResolver;
 import javax.el.ELContext;
@@ -124,7 +125,7 @@ public class ExtValELResolver extends EL
                         propertyExists = true;
                     }
                 }
-                else if(base.getClass().getMethod("get" + propertyName) != null)
+                else if(ProxyUtils.getUnproxiedClass(base.getClass()).getMethod("get" + propertyName) != null)
                 {
                     propertyExists = true;
                 }
@@ -133,7 +134,7 @@ public class ExtValELResolver extends EL
             {
                 try
                 {
-                    if(base.getClass().getMethod("is" + propertyName) != null)
+                    if(ProxyUtils.getUnproxiedClass(base.getClass()).getMethod("is" + propertyName) != null)
                     {
                         propertyExists = true;
                     }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/interceptor/ValidationInterceptor.java Tue Mar  9 16:35:54 2010
@@ -29,6 +29,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.property.PropertyInformation;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.faces.context.FacesContext;
 import javax.faces.component.UIComponent;
@@ -171,10 +172,11 @@ public class ValidationInterceptor exten
     {
         if(value == null)
         {
-            return validationStrategy.getClass().isAnnotationPresent(NullValueAwareValidationStrategy.class);
+            Class validationStrategyClass = ProxyUtils.getUnproxiedClass(validationStrategy.getClass());
+            return validationStrategyClass.isAnnotationPresent(NullValueAwareValidationStrategy.class);
         }
 
-        return !"".equals(value) || validationStrategy.getClass()
+        return !"".equals(value) || ProxyUtils.getUnproxiedClass(validationStrategy.getClass())
                 .isAnnotationPresent(EmptyValueAwareValidationStrategy.class);
     }
 

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/extractor/DefaultComponentMetaDataExtractor.java Tue Mar  9 16:35:54 2010
@@ -33,6 +33,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -99,7 +100,7 @@ public class DefaultComponentMetaDataExt
         /*
          * get bean class and property name
          */
-        Class entityClass = propertyDetails.getBaseObject().getClass();
+        Class entityClass = ProxyUtils.getUnproxiedClass(propertyDetails.getBaseObject().getClass());
 
         //create
         propertyInformation.setInformation(PropertyInformationKeys.PROPERTY_DETAILS, propertyDetails);

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=920970&r1=920969&r2=920970&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 Tue Mar  9 16:35:54 2010
@@ -33,6 +33,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.metadata.transformer.mapper.
         ValidationStrategyToMetaDataTransformerSubMapperAwareNameMapper;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.commons.logging.Log;
@@ -103,7 +104,7 @@ public class DefaultMetaDataTransformerF
                                         .getValidationStrategyClassName();
         }
 
-        return !isProxyDetected ? validationStrategy.getClass().getName() : null;
+        return !isProxyDetected ? ProxyUtils.getClassName(validationStrategy.getClass()) : null;
     }
 
     private void tryToInitStaticMappings()

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/DefaultValidationStrategyToMetaDataTransformerNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/DefaultValidationStrategyToMetaDataTransformerNameMapper.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/DefaultValidationStrategyToMetaDataTransformerNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/DefaultValidationStrategyToMetaDataTransformerNameMapper.java Tue Mar  9 16:35:54 2010
@@ -23,6 +23,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.InvocationOrder;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 /**
  * Default implementation which maps ExtVal ValidationStrategies to MetaDataTransformers.
@@ -37,12 +38,16 @@ public class DefaultValidationStrategyTo
 {
     public String createName(ValidationStrategy validationStrategy)
     {
+        Class<? extends ValidationStrategy> validationStrategyClass =
+                ProxyUtils.getUnproxiedClass(validationStrategy.getClass(), ValidationStrategy.class);
+
         return InternalConventionProvider.getMetaDataTransformerClassName(
-                validationStrategy.getClass(), getClassName(validationStrategy.getClass().getSimpleName()));
+                validationStrategyClass,
+                getClassName(validationStrategyClass.getSimpleName()));
     }
 
     protected String getClassName(String validationStrategyClassName)
     {
         return InternalConventionProvider.getMetaDataTransformerClassName(validationStrategyClassName);
     }
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/SimpleValidationStrategyToMetaDataTransformerNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/SimpleValidationStrategyToMetaDataTransformerNameMapper.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/SimpleValidationStrategyToMetaDataTransformerNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/metadata/transformer/mapper/SimpleValidationStrategyToMetaDataTransformerNameMapper.java Tue Mar  9 16:35:54 2010
@@ -24,6 +24,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.InvocationOrder;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 /**
  * It's an alternative Mapper to place ValidationStrategies and MetaDataTransformers in the same package.
@@ -38,12 +39,15 @@ public class SimpleValidationStrategyToM
 {
     public String createName(ValidationStrategy validationStrategy)
     {
-        if(validationStrategy.getClass().getPackage() == null)
+        Class<? extends ValidationStrategy> validationStrategyClass =
+                ProxyUtils.getUnproxiedClass(validationStrategy.getClass(), ValidationStrategy.class);
+
+        if(validationStrategyClass.getPackage() == null)
         {
             return null;
         }
-        return getSimpleMetaDataTransformerName(validationStrategy.getClass().getPackage().getName() + ".",
-                                                validationStrategy.getClass().getSimpleName());
+        return getSimpleMetaDataTransformerName(validationStrategyClass.getPackage().getName() + ".",
+                                                validationStrategyClass.getSimpleName());
     }
 
     public String getSimpleMetaDataTransformerName(String validationStrategyPackageName,
@@ -66,4 +70,4 @@ public class SimpleValidationStrategyToM
         return validationStrategyPackageName + validationStrategyClassName + postfix;
     }
 
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererProxy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererProxy.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererProxy.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/renderkit/ExtValRendererProxy.java Tue Mar  9 16:35:54 2010
@@ -24,6 +24,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.storage.RendererProxyStorage;
 import org.apache.myfaces.extensions.validator.core.JsfProjectStage;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -248,7 +249,7 @@ public class ExtValRendererProxy extends
 
     protected String getRendererKey()
     {
-        return this.wrapped.getClass().getName();
+        return ProxyUtils.getClassName(this.wrapped.getClass());
     }
 
     private RendererProxyStorage getRendererStorage()

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/AbstractStorageManager.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/AbstractStorageManager.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/AbstractStorageManager.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/AbstractStorageManager.java Tue Mar  9 16:35:54 2010
@@ -21,6 +21,7 @@ package org.apache.myfaces.extensions.va
 import org.apache.myfaces.extensions.validator.core.factory.AbstractNameMapperAwareFactory;
 import org.apache.myfaces.extensions.validator.core.mapper.NameMapper;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import static org.apache.myfaces.extensions.validator.internal.UsageCategory.REUSE;
 import org.apache.commons.logging.Log;
@@ -95,7 +96,7 @@ public abstract class AbstractStorageMan
 
         if(storageMap != null && storageMap.containsKey(storageKey))
         {
-            Class storageClass = storageMap.get(storageKey).getClass();
+            Class storageClass = ProxyUtils.getUnproxiedClass(storageMap.get(storageKey).getClass());
             storageMap.put(storageKey, (T)ClassUtils.tryToInstantiateClass(storageClass));
         }
     }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultMetaDataStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultMetaDataStorage.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultMetaDataStorage.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultMetaDataStorage.java Tue Mar  9 16:35:54 2010
@@ -31,6 +31,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.CustomInformation;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -96,7 +97,7 @@ public class DefaultMetaDataStorage impl
 
         copyMetaData(propertyInformation, propertyInformationToStore);
 
-        getMapForClass(propertyDetails.getBaseObject().getClass())
+        getMapForClass(ProxyUtils.getUnproxiedClass(propertyDetails.getBaseObject().getClass()))
                 .put(propertyDetails.getProperty(), propertyInformationToStore);
     }
 
@@ -137,14 +138,14 @@ public class DefaultMetaDataStorage impl
 
     private boolean isFilterDenied(MetaDataStorageFilter storageFilter)
     {
-        return this.deniedMetaDataFilters.contains(storageFilter.getClass());
+        return this.deniedMetaDataFilters.contains(getStorageFilterClass(storageFilter));
     }
 
     private boolean isFilterAlreadyRegistered(MetaDataStorageFilter storageFilter)
     {
         for(MetaDataStorageFilter filter : this.metaDataStorageFilters)
         {
-            if(filter.getClass().equals(storageFilter.getClass()))
+            if(filter.getClass().equals(getStorageFilterClass(storageFilter)))
             {
                 return true;
             }
@@ -213,11 +214,16 @@ public class DefaultMetaDataStorage impl
 
     private Map<String, PropertyInformation> getMapForClass(Class target)
     {
-        String key = ClassUtils.getClassName(target);
+        String key = ProxyUtils.getClassName(target);
         if(!this.cachedPropertyInformation.containsKey(key))
         {
             this.cachedPropertyInformation.put(key, new HashMap<String, PropertyInformation>());
         }
         return this.cachedPropertyInformation.get(key);
     }
+
+    private Class<? extends MetaDataStorageFilter> getStorageFilterClass(MetaDataStorageFilter storageFilter)
+    {
+        return ProxyUtils.getUnproxiedClass(storageFilter.getClass(), MetaDataStorageFilter.class);
+    }
 }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultPropertyStorage.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultPropertyStorage.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultPropertyStorage.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/storage/DefaultPropertyStorage.java Tue Mar  9 16:35:54 2010
@@ -22,7 +22,7 @@ import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import static org.apache.myfaces.extensions.validator.internal.UsageCategory.INTERNAL;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
-import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import java.lang.reflect.Field;
 import java.lang.reflect.Method;
@@ -73,7 +73,7 @@ public class DefaultPropertyStorage impl
 
     private Map<String, Field> getFieldMapForClass(Class target)
     {
-        String key = ClassUtils.getClassName(target);
+        String key = ProxyUtils.getClassName(target);
         if (!this.fieldMap.containsKey(key))
         {
             this.fieldMap.put(key, new HashMap<String, Field>());
@@ -83,11 +83,11 @@ public class DefaultPropertyStorage impl
 
     private Map<String, Method> getMethodMapForClass(Class target)
     {
-        String key = ClassUtils.getClassName(target);
+        String key = ProxyUtils.getClassName(target);
         if (!this.methodMap.containsKey(key))
         {
             this.methodMap.put(key, new HashMap<String, Method>());
         }
         return this.methodMap.get(key);
     }
-}
\ No newline at end of file
+}

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=920970&r1=920969&r2=920970&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 Tue Mar  9 16:35:54 2010
@@ -27,6 +27,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.initializer.configuration.StaticConfigurationNames;
 import org.apache.myfaces.extensions.validator.core.ExtValContext;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.internal.ToDo;
 import org.apache.myfaces.extensions.validator.internal.Priority;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
@@ -65,7 +66,7 @@ public class DefaultMessageResolverFacto
 
     public MessageResolver create(ValidationStrategy validationStrategy)
     {
-        String strategyName = validationStrategy.getClass().getName();
+        String strategyName = ProxyUtils.getClassName(validationStrategy.getClass());
 
         if (strategyMessageResolverMapping == null)
         {
@@ -86,7 +87,7 @@ public class DefaultMessageResolverFacto
             resolverName = nameMapper.createName(validationStrategy);
 
             //name wasn't mapped
-            if (resolverName == null || validationStrategy.getClass().getName().equals(resolverName))
+            if (resolverName == null || ProxyUtils.getClassName(validationStrategy.getClass()).equals(resolverName))
             {
                 continue;
             }

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultValidationStrategyToMsgResolverNameMapper.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultValidationStrategyToMsgResolverNameMapper.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultValidationStrategyToMsgResolverNameMapper.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/core/validation/message/resolver/mapper/DefaultValidationStrategyToMsgResolverNameMapper.java Tue Mar  9 16:35:54 2010
@@ -23,6 +23,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.InvocationOrder;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 /**
  * Default implementation which maps ExtVal ValidationStrategies to ExtVal MessageResolvers.
@@ -37,12 +38,14 @@ public class DefaultValidationStrategyTo
 {
     public String createName(ValidationStrategy validationStrategy)
     {
-        return InternalConventionProvider.getMessageResolverClassName(validationStrategy.getClass(),
-                                                     getClassName(validationStrategy.getClass().getSimpleName()));
+        Class<? extends ValidationStrategy> validationStrategyClass = ProxyUtils
+                .getUnproxiedClass(validationStrategy.getClass(), ValidationStrategy.class);
+        return InternalConventionProvider.getMessageResolverClassName(validationStrategyClass,
+                                                     getClassName(validationStrategyClass.getSimpleName()));
     }
 
     protected String getClassName(String strategyClassName)
     {
         return InternalConventionProvider.getMessageResolverClassName(strategyClassName);
     }
-}
\ No newline at end of file
+}

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ClassUtils.java Tue Mar  9 16:35:54 2010
@@ -120,19 +120,4 @@ public class ClassUtils
             return null;
         }
     }
-
-    public static String getClassName(Class currentClass)
-    {
-        if (isProxiedClass(currentClass))
-        {
-            return currentClass.getName().substring(0, currentClass.getName().indexOf("$"));
-        }
-        return currentClass.getName();
-    }
-
-    public static boolean isProxiedClass(Class currentClass)
-    {
-        return currentClass.getName().contains("$$EnhancerByCGLIB$$")
-            || currentClass.getName().contains("$$FastClassByCGLIB$$");
-    }
 }

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=920970&r1=920969&r2=920970&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 Tue Mar  9 16:35:54 2010
@@ -750,7 +750,8 @@ public class ExtValUtils
     {
         return metaData.isEmpty() ||
                 (Boolean.TRUE.equals(entry.getProperty(PropertyInformationKeys.SKIP_VALIDATION, Boolean.class)) &&
-                        isSkipableValidationStrategy(validationStrategy.getClass()));
+                        isSkipableValidationStrategy(ProxyUtils.getUnproxiedClass(
+                                validationStrategy.getClass(), ValidationStrategy.class)));
     }
 
     public static boolean interpretEmptyStringValuesAsNull()

Added: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ProxyUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ProxyUtils.java?rev=920970&view=auto
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ProxyUtils.java (added)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ProxyUtils.java Tue Mar  9 16:35:54 2010
@@ -0,0 +1,60 @@
+/*
+ * 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.util;
+
+import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.UsageCategory;
+
+/**
+ * @author Gerhard Petracek
+ * @since x.x.3
+ */
+@UsageInformation(UsageCategory.INTERNAL)
+public class ProxyUtils
+{
+    public static <T> Class<T> getUnproxiedClass(Class currentClass, Class<T> targetType)
+    {
+        return (Class<T>)getUnproxiedClass(currentClass);
+    }
+
+    public static Class getUnproxiedClass(Class currentClass)
+    {
+        if(isProxiedClass(currentClass))
+        {
+            return ClassUtils.tryToLoadClassForName(getClassName(currentClass));
+        }
+        return currentClass;
+    }
+
+    public static String getClassName(Class proxiedClass)
+    {
+        if (isProxiedClass(proxiedClass))
+        {
+            return proxiedClass.getName().substring(0, proxiedClass.getName().indexOf("$"));
+        }
+        return proxiedClass.getName();
+    }
+
+    public static boolean isProxiedClass(Class currentClass)
+    {
+        return currentClass.getName().contains("$$EnhancerByCGLIB$$")
+            || currentClass.getName().contains("$$FastClassByCGLIB$$");
+    }
+
+}

Modified: myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java (original)
+++ myfaces/extensions/validator/trunk/core/src/main/java/org/apache/myfaces/extensions/validator/util/ReflectionUtils.java Tue Mar  9 16:35:54 2010
@@ -185,7 +185,7 @@ public class ReflectionUtils
             }
 
             //no is - it's only possible at properties not at bean level
-            currentMethod = tryToGetMethod(currentBase.getClass(),
+            currentMethod = tryToGetMethod(ProxyUtils.getUnproxiedClass(currentBase.getClass()),
                 "get" + currentProperty.substring(0, 1).toUpperCase() +
                     currentProperty.substring(1, currentProperty.length()));
             currentBase = tryToInvokeMethod(currentBase, currentMethod);

Modified: myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationModuleValidationInterceptorInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationModuleValidationInterceptorInternals.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationModuleValidationInterceptorInternals.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/BeanValidationModuleValidationInterceptorInternals.java Tue Mar  9 16:35:54 2010
@@ -31,7 +31,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
-import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
@@ -98,8 +98,11 @@ class BeanValidationModuleValidationInte
             foundGroups = new Class[]{Default.class};
         }
 
-        ElementDescriptor elementDescriptor = getDescriptorFor(
-                propertyDetails.getBaseObject().getClass(), propertyDetails.getProperty());
+        Class targetClass = propertyDetails.getBaseObject().getClass();
+
+        targetClass = ProxyUtils.getUnproxiedClass(targetClass);
+
+        ElementDescriptor elementDescriptor = getDescriptorFor(targetClass, propertyDetails.getProperty());
 
         if (elementDescriptor == null)
         {
@@ -190,7 +193,9 @@ class BeanValidationModuleValidationInte
     {
         PropertyDetails propertyDetails = ExtValUtils.getPropertyDetails(propertyInformation);
 
-        return getDescriptorFor(propertyDetails.getBaseObject().getClass(), propertyDetails.getProperty()) != null;
+        Class targetClass = ProxyUtils.getUnproxiedClass(propertyDetails.getBaseObject().getClass());
+
+        return getDescriptorFor(targetClass, propertyDetails.getProperty()) != null;
     }
 
     @SuppressWarnings({"unchecked"})
@@ -223,11 +228,7 @@ class BeanValidationModuleValidationInte
     {
         Class result = ExtValUtils.getPropertyDetails(propertyInformation).getBaseObject().getClass();
 
-        if(ClassUtils.isProxiedClass(result))
-        {
-            result = ClassUtils.tryToLoadClassForName(ClassUtils.getClassName(result));
-        }
-        return result;
+        return ProxyUtils.getUnproxiedClass(result);
     }
 
     String getPropertyToValidate(PropertyInformation propertyInformation)

Modified: myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/extractor/DefaultGroupControllerScanningExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/extractor/DefaultGroupControllerScanningExtractor.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/extractor/DefaultGroupControllerScanningExtractor.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/annotation/extractor/DefaultGroupControllerScanningExtractor.java Tue Mar  9 16:35:54 2010
@@ -27,6 +27,7 @@ import org.apache.myfaces.extensions.val
 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.ProxyUtils;
 
 import javax.faces.context.FacesContext;
 
@@ -48,7 +49,7 @@ public class DefaultGroupControllerScann
 
         PropertyDetails propertyDetails = (PropertyDetails)object;
 
-        Class entityClass = propertyDetails.getBaseObject().getClass();
+        Class entityClass = ProxyUtils.getUnproxiedClass(propertyDetails.getBaseObject().getClass());
 
         PropertyInformation propertyInformation = new DefaultPropertyInformation();
         propertyInformation.setInformation(PropertyInformationKeys.PROPERTY_DETAILS, propertyDetails);

Modified: myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/bean-validation/src/main/java/org/apache/myfaces/extensions/validator/beanval/util/ExtValBeanValidationMetaDataInternals.java Tue Mar  9 16:35:54 2010
@@ -33,9 +33,11 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.validation.message.FacesMessageHolder;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
+import org.apache.myfaces.extensions.validator.internal.ToDo;
+import org.apache.myfaces.extensions.validator.internal.Priority;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
-import org.apache.myfaces.extensions.validator.util.ClassUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIComponent;
@@ -201,12 +203,7 @@ class ExtValBeanValidationMetaDataIntern
                               List<Class> restrictedGroupsForModelValidation,
                               boolean processModelValidation)
     {
-        Class classToInspect = objectToInspect.getClass();
-
-        if(ClassUtils.isProxiedClass(classToInspect))
-        {
-            classToInspect = ClassUtils.tryToLoadClassForName(ClassUtils.getClassName(classToInspect));
-        }
+        Class classToInspect = ProxyUtils.getUnproxiedClass(objectToInspect.getClass());
 
         while (!Object.class.getName().equals(classToInspect.getName()))
         {
@@ -289,17 +286,20 @@ class ExtValBeanValidationMetaDataIntern
     private Object getValueOfProperty(Object base, String property)
     {
         property = property.substring(0, 1).toUpperCase() + property.substring(1, property.length());
-        Method targetMethod = ReflectionUtils.tryToGetMethod(base.getClass(), "get" + property);
+
+        Class targetClass = ProxyUtils.getUnproxiedClass(base.getClass());
+
+        Method targetMethod = ReflectionUtils.tryToGetMethod(targetClass, "get" + property);
 
         if (targetMethod == null)
         {
-            targetMethod = ReflectionUtils.tryToGetMethod(base.getClass(), "is" + property);
+            targetMethod = ReflectionUtils.tryToGetMethod(targetClass, "is" + property);
         }
 
         if (targetMethod == null)
         {
             throw new IllegalStateException(
-                    "class " + base.getClass() + " has no public get/is " + property.toLowerCase());
+                    "class " + targetClass + " has no public get/is " + property.toLowerCase());
         }
         return ReflectionUtils.tryToInvokeMethod(base, targetMethod);
     }
@@ -360,6 +360,7 @@ class ExtValBeanValidationMetaDataIntern
         }
     }
 
+    @ToDo(value = Priority.MEDIUM, description = "test proxy support")
     private void transferGroupValidationInformationToFoundGroups(
             Object objectToInspect,
             List<Class> foundGroupsForPropertyValidation,

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/JoinValidationMetaDataStorageFilter.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/JoinValidationMetaDataStorageFilter.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/JoinValidationMetaDataStorageFilter.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/JoinValidationMetaDataStorageFilter.java Tue Mar  9 16:35:54 2010
@@ -28,6 +28,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.storage.MetaDataStorageFilter;
 import org.apache.myfaces.extensions.validator.util.ClassUtils;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
@@ -177,8 +178,9 @@ public class JoinValidationMetaDataStora
     {
         PropertyDetails propertyDetails = ExtValUtils.createPropertyDetailsForNewTarget(metaDataEntry, target);
 
+        Class targetClass = ProxyUtils.getUnproxiedClass(propertyDetails.getBaseObject().getClass());
         return new StaticSyntaxMetaDataExtractor().extract(
-                propertyDetails.getBaseObject().getClass(), propertyDetails.getProperty()).getMetaDataEntries();
+                targetClass, propertyDetails.getProperty()).getMetaDataEntries();
     }
 
     private class StaticSyntaxMetaDataExtractor extends DefaultComponentMetaDataExtractor

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/annotation/extractor/DefaultPropertyScanningMetaDataExtractor.java Tue Mar  9 16:35:54 2010
@@ -29,6 +29,7 @@ import org.apache.myfaces.extensions.val
 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.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.PropertyValidationModuleKey;
 
 import javax.faces.context.FacesContext;
@@ -64,7 +65,7 @@ public class DefaultPropertyScanningMeta
 
         PropertyDetails propertyDetails = (PropertyDetails)object;
 
-        Class entityClass = propertyDetails.getBaseObject().getClass();
+        Class entityClass = ProxyUtils.getUnproxiedClass(propertyDetails.getBaseObject().getClass());
 
         //TODO test with complex components
         propertyInformation.setInformation(

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/baseval/strategy/JoinValidationStrategy.java Tue Mar  9 16:35:54 2010
@@ -26,6 +26,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.validation.strategy.ValidationStrategy;
 import org.apache.myfaces.extensions.validator.core.property.PropertyDetails;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 
@@ -88,7 +89,8 @@ public class JoinValidationStrategy exte
 
                 if (validationStrategy != null)
                 {
-                    if(ExtValUtils.processMetaDataEntryAfterSkipValidation(validationStrategy.getClass(), entry))
+                    if(ExtValUtils.processMetaDataEntryAfterSkipValidation(ProxyUtils.getUnproxiedClass(
+                            validationStrategy.getClass(), ValidationStrategy.class), entry))
                     {
                         continue;
                     }

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/CrossValidationPhaseListener.java Tue Mar  9 16:35:54 2010
@@ -22,6 +22,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.util.JsfUtils;
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
 import org.apache.myfaces.extensions.validator.util.ExtValUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
 import org.apache.myfaces.extensions.validator.crossval.strategy.AbstractCrossValidationStrategy;
@@ -79,7 +80,7 @@ public class CrossValidationPhaseListene
                         ReflectionUtils.tryToInvokeMethod(
                                 entry.getValidationStrategy(),
                                 ReflectionUtils.tryToGetMethod(
-                                        entry.getValidationStrategy().getClass(),
+                                        ProxyUtils.getUnproxiedClass(entry.getValidationStrategy().getClass()),
                                         "initCrossValidation",
                                         CrossValidationStorageEntry.class),
                                 entry);
@@ -101,7 +102,7 @@ public class CrossValidationPhaseListene
                             addMessage = (Boolean)ReflectionUtils.tryToInvokeMethod(
                                     entry.getValidationStrategy(),
                                     ReflectionUtils.tryToGetMethod(
-                                            entry.getValidationStrategy().getClass(),
+                                            ProxyUtils.getUnproxiedClass(entry.getValidationStrategy().getClass()),
                                             "processAfterCrossValidatorException",
                                             CrossValidationStorageEntry.class,
                                             validatorException.getClass()),

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/crossval/strategy/LocalCompareStrategy.java Tue Mar  9 16:35:54 2010
@@ -29,6 +29,7 @@ import org.apache.myfaces.extensions.val
 import org.apache.myfaces.extensions.validator.core.property.PropertyInformationKeys;
 import org.apache.myfaces.extensions.validator.util.CrossValidationUtils;
 import org.apache.myfaces.extensions.validator.util.ReflectionUtils;
+import org.apache.myfaces.extensions.validator.util.ProxyUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
@@ -118,11 +119,12 @@ class LocalCompareStrategy implements Re
     protected Object getValueOfProperty(Object base, String property)
     {
         property = property.substring(0,1).toUpperCase() + property.substring(1, property.length());
-        Method targetMethod = ReflectionUtils.tryToGetMethod(base.getClass(), "get" + property);
+        Class targetClass = ProxyUtils.getUnproxiedClass(base.getClass());
+        Method targetMethod = ReflectionUtils.tryToGetMethod(targetClass, "get" + property);
 
         if(targetMethod == null)
         {
-            targetMethod = ReflectionUtils.tryToGetMethod(base.getClass(), "is" + property);
+            targetMethod = ReflectionUtils.tryToGetMethod(targetClass, "is" + property);
         }
 
         if(targetMethod == null)

Modified: myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/PropertyValidationUtils.java
URL: http://svn.apache.org/viewvc/myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/PropertyValidationUtils.java?rev=920970&r1=920969&r2=920970&view=diff
==============================================================================
--- myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/PropertyValidationUtils.java (original)
+++ myfaces/extensions/validator/trunk/validation-modules/property-validation/src/main/java/org/apache/myfaces/extensions/validator/util/PropertyValidationUtils.java Tue Mar  9 16:35:54 2010
@@ -42,7 +42,8 @@ public class PropertyValidationUtils
                                          ValidationStrategy validationStrategy,
                                          MetaDataEntry metaDataEntry)
     {
-        if(ExtValUtils.isSkipableValidationStrategy(validationStrategy.getClass()))
+        if(ExtValUtils.isSkipableValidationStrategy(
+                ProxyUtils.getUnproxiedClass(validationStrategy.getClass(), ValidationStrategy.class)))
         {
             Boolean skipValidation = metaDataEntry.getProperty(
                 PropertyInformationKeys.SKIP_VALIDATION, Boolean.class);
@@ -64,4 +65,4 @@ public class PropertyValidationUtils
         }
         return false;
     }
-}
\ No newline at end of file
+}