bval-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Roman Stumm <roman.st...@gmx.de>
Subject Re: svn commit: r1628598 [1/2] - in /bval/branches/bval-11: ./ bval-core/ bval-core/src/main/java/org/apache/bval/ bval-core/src/main/java/org/apache/bval/model/ bval-core/src/main/java/org/apache/bval/util/ bval-core/src/main/java/org/apache/bval/util/ref...
Date Sat, 06 Dec 2014 12:42:23 GMT
I can compile the trunk with java7, but not with java8:

[ERROR] Failed to execute goal 
org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile 
(default-compile) on project bval-jsr303: Compilation failure: 
Compilation failure:
[ERROR] 
/Users/roman/projects/apache/bval-trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java:[141,8] 
error: reference to validate is ambiguous
[ERROR]
[ERROR] L extends ValidationListener declared in method 
<L>validate(ValidationContext<L>)
[ERROR] 
/Users/roman/projects/apache/bval-trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java:[180,35] 
error: reference to validate is ambiguous
[ERROR]
[ERROR] L extends ValidationListener declared in method 
<L>validate(ValidationContext<L>)
[ERROR] 
/Users/roman/projects/apache/bval-trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/ConstraintValidation.java:[197,24] 
error: reference to validate is ambiguous
[ERROR]
[ERROR] L extends ValidationListener declared in method 
<L>validate(ValidationContext<L>)
[ERROR] 
/Users/roman/projects/apache/bval-trunk/bval-jsr303/src/main/java/org/apache/bval/jsr303/extensions/MethodValidatorImpl.java:[209,26] 
error: reference to validate is ambiguous

Am 06.12.14 13:12, schrieb Daniel Cunha:
> I try see something here.
>
> But I have a problem.. my laptop not build bval.
> The build stop in Building Apache BVal :: bval-jsr 1.1.0-alpha-SNAPSHOT
>
> Linux 3.13.0 32bits
> 4GB ram
> JDK 1.8.0_25
>
> On Sat, Dec 6, 2014 at 8:08 AM, Romain Manni-Bucau <rmannibucau@gmail.com>
> wrote:
>
>> Hi Matt,
>>
>> I have 2 questions:
>> 1) surely obvious but I dont get why you re-set the accessible (if
>> (mustSet)). While we need it accessible we can keep it set to true no?
>> 2) more important: tck are broken now Tests run: 758, Failures: 13,
>> Errors: 0, Skipped: 0 (mvn clean install -Ptck11) :(
>>
>>
>> Romain Manni-Bucau
>> @rmannibucau
>> http://www.tomitribe.com
>> http://rmannibucau.wordpress.com
>> https://github.com/rmannibucau
>>
>>
>>
>> ---------- Forwarded message ----------
>> From:  <mbenson@apache.org>
>> Date: 2014-10-01 6:37 GMT+02:00
>> Subject: svn commit: r1628598 [1/2] - in /bval/branches/bval-11: ./
>> bval-core/ bval-core/src/main/java/org/apache/bval/
>> bval-core/src/main/java/org/apache/bval/model/
>> bval-core/src/main/java/org/apache/bval/util/
>> bval-core/src/main/java/org/apache/bval/util/ref...
>> To: commits@bval.apache.org
>>
>>
>> Author: mbenson
>> Date: Wed Oct  1 04:37:36 2014
>> New Revision: 1628598
>>
>> URL: http://svn.apache.org/r1628598
>> Log:
>> use commons weaver/privilizer
>>
>> Removed:
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/DefaultReflection.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/SecurityManagerReflection.java
>> Modified:
>>      bval/branches/bval-11/bval-core/pom.xml
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
>>
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java
>>      bval/branches/bval-11/bval-jsr/   (props changed)
>>      bval/branches/bval-11/bval-jsr/pom.xml
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/DefaultTraversableResolver.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/AnnotationProxyBuilder.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationMappingParser.java
>>
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/xml/ValidationParser.java
>>
>> bval/branches/bval-11/bval-jsr/src/test/java/org/apache/bval/jsr/xml/ValidationParserTest.java
>>      bval/branches/bval-11/bval-jsr/src/test/resources/java.policy
>>      bval/branches/bval-11/bval-tck11/   (props changed)
>>      bval/branches/bval-11/bval-xstream/pom.xml
>>
>> bval/branches/bval-11/bval-xstream/src/main/java/org/apache/bval/xml/XMLMetaBeanManager.java
>>      bval/branches/bval-11/pom.xml
>>
>> Modified: bval/branches/bval-11/bval-core/pom.xml
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/pom.xml?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> --- bval/branches/bval-11/bval-core/pom.xml (original)
>> +++ bval/branches/bval-11/bval-core/pom.xml Wed Oct  1 04:37:36 2014
>> @@ -46,6 +46,10 @@
>>               <artifactId>commons-beanutils-core</artifactId>
>>           </dependency>
>>           <dependency>
>> +            <groupId>org.apache.commons</groupId>
>> +            <artifactId>commons-weaver-privilizer-api</artifactId>
>> +        </dependency>
>> +        <dependency>
>>               <groupId>junit</groupId>
>>               <artifactId>junit</artifactId>
>>               <scope>test</scope>
>> @@ -118,6 +122,10 @@ build.timestamp=${timestamp}
>>                       </execution>
>>                   </executions>
>>               </plugin>
>> +            <plugin>
>> +               <groupId>org.apache.commons</groupId>
>> +               <artifactId>commons-weaver-maven-plugin</artifactId>
>> +            </plugin>
>>           </plugins>
>>           <pluginManagement>
>>                  <plugins>
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/ConstructorAccess.java
>> Wed Oct  1 04:37:36 2014
>> @@ -16,13 +16,11 @@
>>    */
>>   package org.apache.bval;
>>
>> -import org.apache.bval.util.AccessStrategy;
>> -
>>   import java.lang.annotation.ElementType;
>>   import java.lang.reflect.Constructor;
>>   import java.lang.reflect.Type;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>> +
>> +import org.apache.bval.util.AccessStrategy;
>>
>>   public class ConstructorAccess extends AccessStrategy {
>>
>> @@ -30,18 +28,7 @@ public class ConstructorAccess extends A
>>
>>       public ConstructorAccess(final Constructor<?> constructor) {
>>           this.constructor = constructor;
>> -        if (!constructor.isAccessible()) {
>> -            if (System.getSecurityManager() == null) {
>> -                constructor.setAccessible(true);
>> -            } else {
>> -                AccessController.doPrivileged(new
>> PrivilegedAction<Void>() {
>> -                    public Void run() {
>> -                        constructor.setAccessible(true);
>> -                        return null;
>> -                    }
>> -                });
>> -            }
>> -        }
>> +        setAccessible(constructor);
>>       }
>>
>>       @Override
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/model/MetaBean.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/model/MetaBean.java
>> Wed Oct  1 04:37:36 2014
>> @@ -17,6 +17,8 @@
>>   package org.apache.bval.model;
>>
>>   import org.apache.bval.util.reflection.Reflection;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import java.beans.Introspector;
>>   import java.lang.reflect.Constructor;
>> @@ -34,6 +36,7 @@ import java.util.TreeMap;
>>    *
>>    * @see MetaProperty
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class MetaBean extends FeaturesCapable implements Cloneable,
>> Features.Bean {
>>       private static final long serialVersionUID = 2L;
>>
>> @@ -280,7 +283,7 @@ public class MetaBean extends FeaturesCa
>>               int i = 0;
>>               Class<?> clazz = beanClass;
>>               while (clazz != null && clazz != Object.class) {
>> -                for (final Field f :
>> Reflection.INSTANCE.getDeclaredFields(clazz)) {
>> +                for (final Field f : Reflection.getDeclaredFields(clazz))
>> {
>>                       i++;
>>                       final String name = f.getName();
>>                       if (!fields.containsKey(name)) {
>> @@ -321,7 +324,7 @@ public class MetaBean extends FeaturesCa
>>           protected MethodComparator(final Class<?> beanClass) {
>>               Class<?> clazz = beanClass;
>>               while (clazz != null && clazz != Object.class) {
>> -                for (final Method m :
>> Reflection.INSTANCE.getDeclaredMethods(clazz)) {
>> +                for (final Method m :
>> Reflection.getDeclaredMethods(clazz)) {
>>                       methods.put(m,
>> Arrays.hashCode(m.getParameterTypes()));
>>                   }
>>                   clazz = clazz.getSuperclass();
>> @@ -345,7 +348,7 @@ public class MetaBean extends FeaturesCa
>>           private final Map<Constructor<?>, Integer> constructors = new
>> HashMap<Constructor<?>, Integer>();
>>
>>           protected ConstructorComparator(final Class<?> beanClass) {
>> -            for (final Constructor<?> c :
>> Reflection.INSTANCE.getDeclaredConstructors(beanClass)) {
>> +            for (final Constructor<?> c :
>> Reflection.getDeclaredConstructors(beanClass)) {
>>                   constructors.put(c,
>> Arrays.hashCode(c.getParameterTypes()));
>>               }
>>           }
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/AccessStrategy.java
>> Wed Oct  1 04:37:36 2014
>> @@ -17,8 +17,11 @@
>>   package org.apache.bval.util;
>>
>>   import java.lang.annotation.ElementType;
>> +import java.lang.reflect.AccessibleObject;
>>   import java.lang.reflect.Type;
>>
>> +import org.apache.commons.weaver.privilizer.Privileged;
>> +
>>   /**
>>    * Description: abstract class to encapsulate different strategies
>>    * to get the value of a Property.  This class is designed such that
>> @@ -55,4 +58,21 @@ public abstract class AccessStrategy {
>>        * @return String
>>        */
>>       public abstract String getPropertyName();
>> +
>> +    /**
>> +     * Set {@code accessibleObject} as being accessible
>> +     * @param accessibleObject
>> +     */
>> +    protected boolean setAccessible(AccessibleObject accessibleObject) {
>> +        if (accessibleObject.isAccessible()) {
>> +            return false;
>> +        }
>> +        doSetAccessible(accessibleObject);
>> +        return true;
>> +    }
>> +
>> +    @Privileged
>> +    private void doSetAccessible(AccessibleObject accessibleObject) {
>> +        accessibleObject.setAccessible(true);
>> +    }
>>   }
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/BValVersion.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/BValVersion.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,18 +18,21 @@
>>    */
>>   package org.apache.bval.util;
>>
>> -import org.apache.bval.util.reflection.Reflection;
>> -
>>   import java.io.IOException;
>>   import java.io.InputStream;
>>   import java.util.Properties;
>>   import java.util.StringTokenizer;
>>
>> +import org.apache.bval.util.reflection.Reflection;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>> +
>>   /**
>>    * This class contains version information for BVal.
>>    * It uses Ant's filter tokens to convert the template into a java
>>    * file with current information.
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class BValVersion {
>>
>>       /** Project name */
>> @@ -157,7 +160,7 @@ public class BValVersion {
>>        * {@inheritDoc}
>>        */
>>       public String toString() {
>> -        StringBuilder buf = new StringBuilder(80 * 40);
>> +        final StringBuilder buf = new StringBuilder(80 * 40);
>>           appendBanner(buf);
>>           buf.append("\n");
>>
>> @@ -169,8 +172,7 @@ public class BValVersion {
>>           appendProperty("java.vendor", buf).append("\n\n");
>>
>>           buf.append("java.class.path:\n");
>> -        StringTokenizer tok = new StringTokenizer(
>> -            Reflection.INSTANCE.getProperty("java.class.path"));
>> +        final StringTokenizer tok = new
>> StringTokenizer(Reflection.getProperty("java.class.path"));
>>           while (tok.hasMoreTokens()) {
>>               buf.append("\t").append(tok.nextToken());
>>               buf.append("\n");
>> @@ -191,7 +193,6 @@ public class BValVersion {
>>       }
>>
>>       private StringBuilder appendProperty(String prop, StringBuilder buf) {
>> -        return buf.append(prop).append(": ").append(
>> -            Reflection.INSTANCE.getProperty(prop));
>> +        return buf.append(prop).append(":
>> ").append(Reflection.getProperty(prop));
>>       }
>>   }
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/FieldAccess.java
>> Wed Oct  1 04:37:36 2014
>> @@ -19,8 +19,6 @@ package org.apache.bval.util;
>>   import java.lang.annotation.ElementType;
>>   import java.lang.reflect.Field;
>>   import java.lang.reflect.Type;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>>
>>   /**
>>    * Description: direct field access strategy.<br/>
>> @@ -35,18 +33,7 @@ public class FieldAccess extends AccessS
>>        */
>>       public FieldAccess(final Field field) {
>>           this.field = field;
>> -        if (!field.isAccessible()) {
>> -            if (System.getSecurityManager() == null) {
>> -                field.setAccessible(true);
>> -            } else {
>> -                AccessController.doPrivileged(new
>> PrivilegedAction<Void>() {
>> -                    public Void run() {
>> -                        field.setAccessible(true);
>> -                        return null;
>> -                    }
>> -                });
>> -            }
>> -        }
>> +        setAccessible(field);
>>       }
>>
>>       /**
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/IndexedAccess.java
>> Wed Oct  1 04:37:36 2014
>> @@ -16,6 +16,7 @@
>>    */
>>   package org.apache.bval.util;
>>
>> +import org.apache.commons.lang3.ObjectUtils;
>>   import org.apache.commons.lang3.reflect.TypeUtils;
>>
>>   import java.lang.annotation.ElementType;
>> @@ -28,7 +29,7 @@ import java.util.Map;
>>   /**
>>    * {@link AccessStrategy} to get an indexed member of an {@link Iterable}
>> or
>>    * array object.
>> - */
>> + */
>>   public class IndexedAccess extends AccessStrategy {
>>       private static final TypeVariable<?> ITERABLE_TYPE =
>> Iterable.class.getTypeParameters()[0];
>>
>> @@ -45,13 +46,13 @@ public class IndexedAccess extends Acces
>>           }
>>           if (TypeUtils.isAssignable(containerType, Iterable.class)) {
>>               Map<TypeVariable<?>, Type> typeArguments =
>> TypeUtils.getTypeArguments(containerType, Iterable.class);
>> -            return typeArguments.containsKey(ITERABLE_TYPE) ?
>> typeArguments.get(ITERABLE_TYPE) : Object.class;
>> +            return
>> ObjectUtils.defaultIfNull(TypeUtils.unrollVariables(typeArguments,
>> ITERABLE_TYPE), Object.class);
>>           }
>>           return null;
>>       }
>>
>> -    private Type containerType;
>> -    private Integer index;
>> +    private final Type containerType;
>> +    private final Integer index;
>>
>>       /**
>>        * Create a new IndexedAccessStrategy instance.
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/KeyedAccess.java
>> Wed Oct  1 04:37:36 2014
>> @@ -16,6 +16,7 @@
>>    */
>>   package org.apache.bval.util;
>>
>> +import org.apache.commons.lang3.ObjectUtils;
>>   import org.apache.commons.lang3.reflect.TypeUtils;
>>
>>   import java.lang.annotation.ElementType;
>> @@ -43,13 +44,13 @@ public class KeyedAccess extends AccessS
>>       public static Type getJavaElementType(Type containerType) {
>>           if (TypeUtils.isAssignable(containerType, Map.class)) {
>>               Map<TypeVariable<?>, Type> typeArguments =
>> TypeUtils.getTypeArguments(containerType, Map.class);
>> -            return typeArguments.containsKey(MAP_TYPEVARS[1]) ?
>> typeArguments.get(MAP_TYPEVARS[1]) : Object.class;
>> +            return
>> ObjectUtils.defaultIfNull(TypeUtils.unrollVariables(typeArguments,
>> MAP_TYPEVARS[1]), Object.class);
>>           }
>>           return null;
>>       }
>>
>> -    private Type containerType;
>> -    private Object key;
>> +    private final Type containerType;
>> +    private final Object key;
>>
>>       /**
>>        * Create a new KeyedAccess instance.
>> @@ -71,7 +72,7 @@ public class KeyedAccess extends AccessS
>>           if (instance instanceof Map<?, ?>) {
>>               Map<?, ?> map = (Map<?, ?>) instance;
>>               Map<TypeVariable<?>, Type> typeArguments =
>> TypeUtils.getTypeArguments(containerType, Map.class);
>> -            Type keyType = typeArguments.get(MAP_TYPEVARS[0]);
>> +            Type keyType = TypeUtils.unrollVariables(typeArguments,
>> MAP_TYPEVARS[0]);
>>               if (key == null || keyType == null ||
>> TypeUtils.isInstance(key, keyType)) {
>>                   return map.get(key);
>>               }
>> @@ -106,7 +107,7 @@ public class KeyedAccess extends AccessS
>>        */
>>       @Override
>>       public Type getJavaType() {
>> -        Type result = getJavaElementType(containerType);
>> +        final Type result = getJavaElementType(containerType);
>>           return result == null ? Object.class : result;
>>       }
>>
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/MethodAccess.java
>> Wed Oct  1 04:37:36 2014
>> @@ -21,8 +21,6 @@ import java.lang.annotation.ElementType;
>>   import java.lang.reflect.InvocationTargetException;
>>   import java.lang.reflect.Method;
>>   import java.lang.reflect.Type;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>>
>>   /**
>>    * Description: invoke a zero-argument method (getter)<br/>
>> @@ -47,18 +45,7 @@ public class MethodAccess extends Access
>>       public MethodAccess(String propertyName, final Method method) {
>>           this.method = method;
>>           this.propertyName = propertyName;
>> -        if (!method.isAccessible()) {
>> -            if (System.getSecurityManager() == null) {
>> -                method.setAccessible(true);
>> -            } else {
>> -                AccessController.doPrivileged(new
>> PrivilegedAction<Void>() {
>> -                    public Void run() {
>> -                        method.setAccessible(true);
>> -                        return null;
>> -                    }
>> -                });
>> -            }
>> -        }
>> +        setAccessible(method);
>>       }
>>
>>       /**
>> @@ -69,21 +56,14 @@ public class MethodAccess extends Access
>>        *         the method name id not according to the JavaBeans standard.
>>        */
>>       public static String getPropertyName(Method member) {
>> -        String name = null;
>> -        String methodName = member.getName();
>> +        final String methodName = member.getName();
>>           if (methodName.startsWith("is")) {
>> -            name = Introspector.decapitalize(methodName.substring(2));
>> -        } /* else if ( methodName.startsWith("has")) {
>> -                               name = Introspector.decapitalize(
>> methodName.substring( 3 ) );
>> -                       } */
>> -        // setter annotation is NOT supported in the spec
>> -        /*  else if (method.getName().startsWith("set") &&
>> method.getParameterTypes().length == 1) {
>> -           propName =
>> Introspector.decapitalize(method.getName().substring(3));
>> -       } */
>> -        else if (methodName.startsWith("get")) {
>> -            name = Introspector.decapitalize(methodName.substring(3));
>> +            return Introspector.decapitalize(methodName.substring(2));
>> +        }
>> +        if (methodName.startsWith("get")) {
>> +            return Introspector.decapitalize(methodName.substring(3));
>>           }
>> -        return name;
>> +        return null;
>>       }
>>
>>       /**
>>
>> Modified:
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-core/src/main/java/org/apache/bval/util/reflection/Reflection.java
>> Wed Oct  1 04:37:36 2014
>> @@ -21,44 +21,122 @@ import java.lang.reflect.Constructor;
>>   import java.lang.reflect.Field;
>>   import java.lang.reflect.InvocationTargetException;
>>   import java.lang.reflect.Method;
>> +import java.lang.reflect.Modifier;
>>
>> -public interface Reflection {
>> -    static final Reflection INSTANCE = ReflectionFactory.newInstance();
>> +import org.apache.commons.lang3.ClassUtils;
>>
>> -    Class<?> getClass(final ClassLoader classLoader, final String
>> className) throws Exception;
>> -
>> -    Object getAnnotationValue(final Annotation annotation, final
>> String name) throws IllegalAccessException, InvocationTargetException;
>> +/**
>> + * Security-agnostic "blueprint" class for reflection-related operations.
>> + *
>> + * @version $Rev$ $Date$
>> + */
>> +public class Reflection {
>> +
>> +    private static void setAccessibility(final Field field) {
>> +        // FIXME 2011-03-27 jw:
>> +        // - Why not simply call field.setAccessible(true)?
>> +        // - Fields can not be abstract.
>> +        if (!Modifier.isPublic(field.getModifiers())
>> +            || (Modifier.isPublic(field.getModifiers()) &&
>> Modifier.isAbstract(field.getModifiers()))) {
>> +            field.setAccessible(true);
>> +        }
>> +    }
>>
>> -    ClassLoader getClassLoader(final Class<?> clazz);
>> +    public static Class<?> getClass(final ClassLoader classLoader,
>> final String className) throws Exception {
>> +        return ClassUtils.getClass(classLoader, className, true);
>> +    }
>>
>> -    String getProperty(final String name);
>> +    public static Object getAnnotationValue(final Annotation
>> annotation, final String name)
>> +        throws IllegalAccessException, InvocationTargetException {
>> +        Method valueMethod;
>> +        try {
>> +            valueMethod =
>> annotation.annotationType().getDeclaredMethod(name);
>> +        } catch (final NoSuchMethodException ex) {
>> +            // do nothing
>> +            valueMethod = null;
>> +        }
>> +        if (null != valueMethod) {
>> +            if (!valueMethod.isAccessible()) {
>> +                valueMethod.setAccessible(true);
>> +            }
>> +            return valueMethod.invoke(annotation);
>> +        }
>> +        return null;
>> +    }
>>
>> -    Field getDeclaredField(final Class<?> clazz, final String fieldName);
>> +    public static ClassLoader getClassLoader(final Class<?> clazz) {
>> +        final ClassLoader cl =
>> Thread.currentThread().getContextClassLoader();
>> +        if (cl != null) {
>> +            return cl;
>> +        }
>> +        return clazz.getClassLoader();
>> +    }
>>
>> -    Field[] getDeclaredFields(final Class<?> clazz);
>> +    public static String getProperty(final String name) {
>> +        return System.getProperty(name);
>> +    }
>>
>> -    Constructor<?> getDeclaredConstructor(final Class<?> clazz, final
>> Class<?>... parameters);
>> +    public static Field getDeclaredField(final Class<?> clazz, final
>> String fieldName) {
>> +        final Field f;
>> +        try {
>> +            f = clazz.getDeclaredField(fieldName);
>> +        } catch (final NoSuchFieldException e) {
>> +            return null;
>> +        }
>> +        setAccessibility(f);
>> +        return f;
>> +    }
>>
>> -    Method getDeclaredMethod(final Class<?> clazz, final String name,
>> final Class<?>... parameters);
>> +    public static Field[] getDeclaredFields(final Class<?> clazz) {
>> +        final Field[] fields = clazz.getDeclaredFields();
>> +        if (fields.length > 0) {
>> +            for (final Field f : fields) {
>> +                if (!f.isAccessible()) {
>> +                    f.setAccessible(true);
>> +                }
>> +            }
>> +        }
>> +        return fields;
>> +    }
>>
>> -    Method[] getDeclaredMethods(final Class<?> clazz);
>> +    public static Constructor<?> getDeclaredConstructor(final
>> Class<?> clazz, final Class<?>... parameters) {
>> +        try {
>> +            return clazz.getDeclaredConstructor(parameters);
>> +        } catch (final NoSuchMethodException e) {
>> +            return null;
>> +        }
>> +    }
>>
>> -    Constructor<?>[] getDeclaredConstructors(final Class<?> clazz);
>> +    public static Method getDeclaredMethod(final Class<?> clazz,
>> final String name, final Class<?>... parameters) {
>> +        try {
>> +            return clazz.getDeclaredMethod(name, parameters);
>> +        } catch (final NoSuchMethodException e) {
>> +            return null;
>> +        }
>> +    }
>>
>> -    Method getPublicMethod(final Class<?> clazz, final String methodName);
>> +    public static Method[] getDeclaredMethods(final Class<?> clazz) {
>> +        return clazz.getDeclaredMethods();
>> +    }
>>
>> -    <T> T newInstance(final Class<T> cls);
>> +    public static Constructor<?>[] getDeclaredConstructors(final
>> Class<?> clazz) {
>> +        return clazz.getDeclaredConstructors();
>> +    }
>>
>> -    public static class ReflectionFactory {
>> -        public static Reflection newInstance() {
>> -            if (System.getSecurityManager() != null) {
>> -                return new SecurityManagerReflection();
>> -            }
>> -            return new DefaultReflection();
>> +    public static Method getPublicMethod(final Class<?> clazz, final
>> String methodName) {
>> +        try {
>> +            return clazz.getMethod(methodName);
>> +        } catch (final NoSuchMethodException e) {
>> +            return null;
>>           }
>> +    }
>>
>> -        private ReflectionFactory() {
>> -            // no-op
>> +    public static <T> T newInstance(final Class<T> cls) {
>> +        try {
>> +            return cls.newInstance();
>> +        } catch (final Exception ex) {
>> +            throw new RuntimeException("Cannot instantiate : " + cls, ex);
>>           }
>>       }
>> +
>>   }
>>
>> Propchange: bval/branches/bval-11/bval-jsr/
>>
>> ------------------------------------------------------------------------------
>> --- svn:ignore (added)
>> +++ svn:ignore Wed Oct  1 04:37:36 2014
>> @@ -0,0 +1,4 @@
>> +.classpath
>> +.project
>> +.settings
>> +target
>>
>> Propchange: bval/branches/bval-11/bval-jsr/
>>
>> ------------------------------------------------------------------------------
>> --- svn:mergeinfo (added)
>> +++ svn:mergeinfo Wed Oct  1 04:37:36 2014
>> @@ -0,0 +1,2 @@
>> +/bval/trunk/bval-jsr303:1598345
>> +/incubator/bval/sandbox/lang3-work/bval-jsr:992137-1166425
>>
>> Modified: bval/branches/bval-11/bval-jsr/pom.xml
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/pom.xml?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> --- bval/branches/bval-11/bval-jsr/pom.xml (original)
>> +++ bval/branches/bval-11/bval-jsr/pom.xml Wed Oct  1 04:37:36 2014
>> @@ -79,13 +79,73 @@
>>                   <plugins>
>>                       <plugin>
>>                           <groupId>org.apache.maven.plugins</groupId>
>> +                        <artifactId>maven-resources-plugin</artifactId>
>> +                        <executions>
>> +                            <execution>
>> +                                <id>default-testResources</id>
>> +                                <phase />
>> +                                <goals>
>> +                                    <goal>testResources</goal>
>> +                                </goals>
>> +                            </execution>
>> +                        </executions>
>> +                    </plugin>
>> +                    <plugin>
>> +                        <groupId>org.apache.maven.plugins</groupId>
>> +                        <artifactId>maven-antrun-plugin</artifactId>
>> +                        <executions>
>> +                            <execution>
>> +                                <id>filter-testResources</id>
>> +                                <phase>process-test-resources</phase>
>> +                                <goals>
>> +                                    <goal>run</goal>
>> +                                </goals>
>> +                                <configuration>
>> +                                    <target>
>> +                                        <mkdir
>> dir="${project.build.testOutputDirectory}" />
>> +                                        <condition property="slash"
>> value="/" else="">
>> +                                            <os family="windows" />
>> +                                        </condition>
>> +                                        <copy
>> todir="${project.build.testOutputDirectory}" overwrite="true">
>> +                                            <fileset
>> dir="${project.basedir}/src/test/resources" excludes="java.policy" />
>> +                                        </copy>
>> +                                        <copy
>> todir="${project.build.testOutputDirectory}" overwrite="true">
>> +                                            <fileset
>> file="${project.basedir}/src/test/resources/java.policy" />
>> +                                            <filterchain>
>> +                                                <expandproperties />
>> +                                                <!-- append extra
>> slash on windows only -->
>> +                                                <replacestring
>> from="file://" to="file://${slash}" />
>> +                                                <replacestring
>> from="${file.separator}" to="/" />
>> +                                                <!-- preserve
>> system-specific file separator -->
>> +                                                <expandproperties>
>> +                                                    <propertyset>
>> +                                                        <propertyref
>> prefix="project." />
>> +                                                        <globmapper
>> from="*" to="preserve.*" />
>> +                                                    </propertyset>
>> +                                                </expandproperties>
>> +                                            </filterchain>
>> +                                        </copy>
>> +                                    </target>
>> +                                </configuration>
>> +                            </execution>
>> +                        </executions>
>> +                        <dependencies>
>> +                            <dependency>
>> +                                <groupId>org.apache.ant</groupId>
>> +                                <artifactId>ant</artifactId>
>> +                                <version>1.9.3</version>
>> +                            </dependency>
>> +                        </dependencies>
>> +                    </plugin>
>> +                    <plugin>
>> +                        <groupId>org.apache.maven.plugins</groupId>
>>                           <artifactId>maven-surefire-plugin</artifactId>
>>                           <configuration>
>>                               <includes>
>>                                   <include>**/*Test.java</include>
>>                                   <include>**/*TestCase.java</include>
>>                               </includes>
>> -                            <argLine>-Djava.security.manager
>>
>> -Djava.security.policy=${project.basedir}/src/test/resources/java.policy</argLine>
>> +                            <argLine>-Djava.security.manager
>>
>> -Djava.security.policy=${project.build.testOutputDirectory}/java.policy</argLine>
>>                           </configuration>
>>                       </plugin>
>>                   </plugins>
>> @@ -103,6 +163,10 @@
>>               <groupId>org.apache.commons</groupId>
>>               <artifactId>commons-lang3</artifactId>
>>           </dependency>
>> +        <dependency>
>> +            <groupId>org.apache.commons</groupId>
>> +            <artifactId>commons-weaver-privilizer-api</artifactId>
>> +        </dependency>
>>           <!-- optional dependencies -->
>>           <dependency>
>>               <groupId>org.apache.bval</groupId>
>> @@ -235,6 +299,10 @@
>>                       </includes>
>>                   </configuration>
>>               </plugin>
>> +            <plugin>
>> +                <groupId>org.apache.commons</groupId>
>> +                <artifactId>commons-weaver-maven-plugin</artifactId>
>> +            </plugin>
>>           </plugins>
>>       </build>
>>   </project>
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationConstraintBuilder.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,27 +18,9 @@
>>    */
>>   package org.apache.bval.jsr;
>>
>> -import org.apache.bval.jsr.groups.GroupsComputer;
>> -import org.apache.bval.jsr.xml.AnnotationProxyBuilder;
>> -import org.apache.bval.util.AccessStrategy;
>> -import org.apache.commons.lang3.reflect.TypeUtils;
>> -
>> -import javax.validation.Constraint;
>> -import javax.validation.ConstraintDeclarationException;
>> -import javax.validation.ConstraintDefinitionException;
>> -import javax.validation.ConstraintTarget;
>> -import javax.validation.ConstraintValidator;
>> -import javax.validation.ConstraintValidatorFactory;
>> -import javax.validation.OverridesAttribute;
>> -import javax.validation.Payload;
>> -import javax.validation.ReportAsSingleViolation;
>> -import javax.validation.constraintvalidation.SupportedValidationTarget;
>> -import javax.validation.constraintvalidation.ValidationTarget;
>>   import java.lang.annotation.Annotation;
>>   import java.lang.reflect.InvocationTargetException;
>>   import java.lang.reflect.Method;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>>   import java.util.Arrays;
>>   import java.util.Collections;
>>   import java.util.HashMap;
>> @@ -50,6 +32,24 @@ import java.util.Set;
>>   import java.util.logging.Level;
>>   import java.util.logging.Logger;
>>
>> +import javax.validation.Constraint;
>> +import javax.validation.ConstraintDeclarationException;
>> +import javax.validation.ConstraintDefinitionException;
>> +import javax.validation.ConstraintTarget;
>> +import javax.validation.ConstraintValidator;
>> +import javax.validation.ConstraintValidatorFactory;
>> +import javax.validation.OverridesAttribute;
>> +import javax.validation.Payload;
>> +import javax.validation.ReportAsSingleViolation;
>> +import javax.validation.constraintvalidation.SupportedValidationTarget;
>> +import javax.validation.constraintvalidation.ValidationTarget;
>> +
>> +import org.apache.bval.jsr.groups.GroupsComputer;
>> +import org.apache.bval.jsr.xml.AnnotationProxyBuilder;
>> +import org.apache.bval.util.AccessStrategy;
>> +import org.apache.commons.lang3.reflect.TypeUtils;
>> +import org.apache.commons.weaver.privilizer.Privileged;
>> +
>>   /**
>>    * Description: helper class that builds a {@link ConstraintValidation}
>> or its
>>    * composite constraint validations by parsing the jsr-annotations and
>> @@ -78,22 +78,11 @@ final class AnnotationConstraintBuilder<
>>       }
>>
>>       /** build attributes, payload, groups from 'annotation' */
>> +    @Privileged
>>       private void buildFromAnnotation() {
>> -        if (constraintValidation.getAnnotation() != null) {
>> -            if (System.getSecurityManager() == null) {
>> -                doBuildFromAnnotations();
>> -            } else {
>> -                AccessController.doPrivileged(new
>> PrivilegedAction<Object>() {
>> -                    public Object run() {
>> -                        doBuildFromAnnotations();
>> -                        return null;
>> -                    }
>> -                });
>> -            }
>> +        if (constraintValidation.getAnnotation() == null) {
>> +            return;
>>           }
>> -    }
>> -
>> -    private void doBuildFromAnnotations() {
>>           final Class<? extends Annotation> annotationType =
>> constraintValidation.getAnnotation().annotationType();
>>
>>           boolean foundPayload = false;
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/AnnotationProcessor.java
>> Wed Oct  1 04:37:36 2014
>> @@ -24,6 +24,8 @@ import org.apache.bval.model.MetaBean;
>>   import org.apache.bval.util.AccessStrategy;
>>   import org.apache.bval.util.reflection.Reflection;
>>   import org.apache.commons.lang3.ArrayUtils;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.Constraint;
>>   import javax.validation.ConstraintValidator;
>> @@ -32,6 +34,7 @@ import javax.validation.constraintvalida
>>   import javax.validation.constraintvalidation.ValidationTarget;
>>   import javax.validation.groups.ConvertGroup;
>>   import javax.validation.groups.Default;
>> +
>>   import java.lang.annotation.Annotation;
>>   import java.lang.reflect.AnnotatedElement;
>>   import java.lang.reflect.InvocationTargetException;
>> @@ -44,6 +47,7 @@ import java.util.Set;
>>    * annotations, including composed constraints and the resolution of
>>    * {@link ConstraintValidator} implementations.
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public final class AnnotationProcessor {
>>       /** {@link ApacheFactoryContext} used */
>>       private final ApacheFactoryContext factoryContext;
>> @@ -142,7 +146,8 @@ public final class AnnotationProcessor {
>>            * annotated by @Constraint) whose value element has a return
>> type of an
>>            * array of constraint annotations in a special way.
>>            */
>> -        final Object result =
>> Reflection.INSTANCE.getAnnotationValue(annotation,
>> ConstraintAnnotationAttributes.VALUE.getAttributeName());
>> +        final Object result =
>> +            Reflection.getAnnotationValue(annotation,
>> ConstraintAnnotationAttributes.VALUE.getAttributeName());
>>           if (result instanceof Annotation[]) {
>>               boolean changed = false;
>>               for (final Annotation each : (Annotation[]) result) {
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheFactoryContext.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,6 +18,18 @@
>>    */
>>   package org.apache.bval.jsr;
>>
>> +import java.lang.reflect.Constructor;
>> +import java.util.ArrayList;
>> +import java.util.List;
>> +
>> +import javax.validation.ConstraintValidatorFactory;
>> +import javax.validation.MessageInterpolator;
>> +import javax.validation.ParameterNameProvider;
>> +import javax.validation.TraversableResolver;
>> +import javax.validation.ValidationException;
>> +import javax.validation.Validator;
>> +import javax.validation.ValidatorContext;
>> +
>>   import org.apache.bval.IntrospectorMetaBeanFactory;
>>   import org.apache.bval.MetaBeanBuilder;
>>   import org.apache.bval.MetaBeanFactory;
>> @@ -29,24 +41,15 @@ import org.apache.bval.xml.XMLMetaBeanFa
>>   import org.apache.bval.xml.XMLMetaBeanManager;
>>   import org.apache.commons.lang3.StringUtils;
>>   import org.apache.commons.lang3.reflect.ConstructorUtils;
>> -
>> -import javax.validation.ConstraintValidatorFactory;
>> -import javax.validation.MessageInterpolator;
>> -import javax.validation.ParameterNameProvider;
>> -import javax.validation.TraversableResolver;
>> -import javax.validation.ValidationException;
>> -import javax.validation.Validator;
>> -import javax.validation.ValidatorContext;
>> -import java.lang.reflect.Constructor;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>> -import java.util.ArrayList;
>> -import java.util.List;
>> +import org.apache.commons.weaver.privilizer.Privileged;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   /**
>>    * Description: Represents the context that is used to create
>>    * <code>ClassValidator</code> instances.<br/>
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class ApacheFactoryContext implements ValidatorContext {
>>       private final ApacheValidatorFactory factory;
>>       private final MetaBeanFinder metaBeanFinder;
>> @@ -238,18 +241,8 @@ public class ApacheFactoryContext implem
>>           return new MetaBeanManager(new
>> MetaBeanBuilder(builders.toArray(new
>> MetaBeanFactory[builders.size()])));
>>       }
>>
>> +    @Privileged
>>       private <F extends MetaBeanFactory> F createMetaBeanFactory(final
>> Class<F> cls) {
>> -        if (System.getSecurityManager() == null) {
>> -            return doCreateMetaBeanFactory(cls);
>> -        }
>> -        return AccessController.doPrivileged(new PrivilegedAction<F>() {
>> -            public F run() {
>> -                return doCreateMetaBeanFactory(cls);
>> -            }
>> -        });
>> -    }
>> -
>> -    private <F extends MetaBeanFactory> F
>> doCreateMetaBeanFactory(final Class<F> cls) {
>>           try {
>>               Constructor<F> c =
>> ConstructorUtils.getMatchingAccessibleConstructor(cls,
>> ApacheFactoryContext.this.getClass());
>>               if (c != null) {
>> @@ -294,7 +287,7 @@ public class ApacheFactoryContext implem
>>
>>       private Class<?> loadClass(final String className) {
>>           try {
>> -            return Class.forName(className, true,
>> Reflection.INSTANCE.getClassLoader(ApacheFactoryContext.class));
>> +            return Class.forName(className, true,
>> Reflection.getClassLoader(ApacheFactoryContext.class));
>>           } catch (ClassNotFoundException ex) {
>>               throw new ValidationException("Unable to load class: " +
>> className, ex);
>>           }
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidationProvider.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,16 +18,15 @@
>>    */
>>   package org.apache.bval.jsr;
>>
>> -import org.apache.commons.lang3.ClassUtils;
>> -
>>   import javax.validation.Configuration;
>>   import javax.validation.ValidationException;
>>   import javax.validation.ValidatorFactory;
>>   import javax.validation.spi.BootstrapState;
>>   import javax.validation.spi.ConfigurationState;
>>   import javax.validation.spi.ValidationProvider;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>> +
>> +import org.apache.commons.lang3.ClassUtils;
>> +import org.apache.commons.weaver.privilizer.Privileged;
>>
>>   /**
>>    * Description: Implementation of {@link ValidationProvider} for jsr
>> @@ -98,15 +97,10 @@ public class ApacheValidationProvider im
>>           // No privileges should be required to access the constructor,
>>           // because the classloader of ApacheValidationProvider will always
>>           // be an ancestor of the loader of validatorFactoryClass.
>> -        return (System.getSecurityManager() == null)
>> -            ? instantiateValidatorFactory(validatorFactoryClass,
>> configuration) : AccessController
>> -                .doPrivileged(new PrivilegedAction<ValidatorFactory>() {
>> -                    public ValidatorFactory run() {
>> -                        return
>> instantiateValidatorFactory(validatorFactoryClass, configuration);
>> -                    }
>> -                });
>> +        return instantiateValidatorFactory(validatorFactoryClass,
>> configuration);
>>       }
>>
>> +    @Privileged
>>       private static ValidatorFactory instantiateValidatorFactory(
>>           final Class<? extends ValidatorFactory>
>> validatorFactoryClass, final ConfigurationState configuration) {
>>           try {
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorConfiguration.java
>> Wed Oct  1 04:37:36 2014
>> @@ -72,7 +72,7 @@ public interface ApacheValidatorConfigur
>>            * class is presumed have a constructor that accepts a single
>>            * {@link ConfigurationState} argument.
>>            */
>> -         String VALIDATOR_FACTORY_CLASSNAME =
>> "apache.bval.validator-factory-classname";
>> +        String VALIDATOR_FACTORY_CLASSNAME =
>> "apache.bval.validator-factory-classname";
>>
>>           /**
>>            * Specifies the names, delimited by whitespace, of
>> @@ -86,6 +86,6 @@ public interface ApacheValidatorConfigur
>>            * <li>default (no-args) constructor</li>
>>            * </ol>
>>            */
>> -         String METABEAN_FACTORY_CLASSNAMES =
>> "apache.bval.metabean-factory-classnames";
>> +        String METABEAN_FACTORY_CLASSNAMES =
>> "apache.bval.metabean-factory-classnames";
>>       }
>>   }
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ApacheValidatorFactory.java
>> Wed Oct  1 04:37:36 2014
>> @@ -25,6 +25,8 @@ import org.apache.bval.util.AccessStrate
>>   import org.apache.bval.util.reflection.Reflection;
>>   import org.apache.commons.lang3.ArrayUtils;
>>   import org.apache.commons.lang3.ClassUtils;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.ConstraintValidatorFactory;
>>   import javax.validation.MessageInterpolator;
>> @@ -35,6 +37,7 @@ import javax.validation.ValidationExcept
>>   import javax.validation.Validator;
>>   import javax.validation.ValidatorFactory;
>>   import javax.validation.spi.ConfigurationState;
>> +
>>   import java.io.Closeable;
>>   import java.lang.annotation.Annotation;
>>   import java.lang.reflect.Modifier;
>> @@ -52,6 +55,7 @@ import java.util.concurrent.ConcurrentMa
>>    * validators.<br/>
>>    * This instance is not thread-safe.<br/>
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class ApacheValidatorFactory implements ValidatorFactory,
>> Cloneable {
>>       private static volatile ApacheValidatorFactory DEFAULT_FACTORY;
>>       private static final ConstraintDefaults DEFAULT_CONSTRAINTS = new
>> ConstraintDefaults();
>> @@ -295,7 +299,7 @@ public class ApacheValidatorFactory impl
>>
>>       private <T> T newInstance(final Class<T> cls) {
>>           try {
>> -            return Reflection.INSTANCE.newInstance(cls);
>> +            return Reflection.newInstance(cls);
>>           } catch (final RuntimeException e) {
>>               throw new ValidationException(e.getCause());
>>           }
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/BeanDescriptorImpl.java
>> Wed Oct  1 04:37:36 2014
>> @@ -33,6 +33,8 @@ import org.apache.bval.model.Validation;
>>   import org.apache.bval.util.AccessStrategy;
>>   import org.apache.bval.util.reflection.Reflection;
>>   import org.apache.commons.lang3.ClassUtils;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.Constraint;
>>   import javax.validation.ConstraintDeclarationException;
>> @@ -49,6 +51,7 @@ import javax.validation.metadata.MethodT
>>   import javax.validation.metadata.ParameterDescriptor;
>>   import javax.validation.metadata.PropertyDescriptor;
>>   import javax.validation.metadata.ReturnValueDescriptor;
>> +
>>   import java.beans.Introspector;
>>   import java.lang.annotation.Annotation;
>>   import java.lang.reflect.AccessibleObject;
>> @@ -72,6 +75,7 @@ import java.util.concurrent.CopyOnWriteA
>>   /**
>>    * Description: Implements {@link BeanDescriptor}.<br/>
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class BeanDescriptorImpl extends ElementDescriptorImpl
>> implements BeanDescriptor {
>>       private static final CopyOnWriteArraySet<ConstraintValidation<?>>
>> NO_CONSTRAINTS = new CopyOnWriteArraySet<ConstraintValidation<?>>();
>>       private static final Validation[] EMPTY_VALIDATION = new
>> Validation[0];
>> @@ -120,7 +124,7 @@ public class BeanDescriptorImpl extends
>>           Class<?> current = prop.getParentMetaBean().getBeanClass();
>>           while (current != null && current != Object.class &&
>> (!methodFound || !fieldFound)) {
>>               if (!fieldFound) {
>> -                final Field field =
>> Reflection.INSTANCE.getDeclaredField(current, prop.getName());
>> +                final Field field =
>> Reflection.getDeclaredField(current, prop.getName());
>>                   if (field != null) {
>>                       processConvertGroup(edesc, field);
>>                       fieldFound = true;
>> @@ -129,12 +133,12 @@ public class BeanDescriptorImpl extends
>>
>>               if (!methodFound) {
>>                   final String name =
>> Character.toUpperCase(prop.getName().charAt(0)) +
>> prop.getName().substring(1);
>> -                Method m =
>> Reflection.INSTANCE.getDeclaredMethod(current, "get" + name);
>> +                Method m = Reflection.getDeclaredMethod(current, "get" +
>> name);
>>                   if (m != null) {
>>                       processConvertGroup(edesc, m);
>>                       methodFound = true;
>>                   } else {
>> -                    m =
>> Reflection.INSTANCE.getDeclaredMethod(current, "is" + name);
>> +                    m = Reflection.getDeclaredMethod(current, "is" +
>> name);
>>                       if (m != null) {
>>                           processConvertGroup(edesc, m);
>>                           methodFound = true;
>> @@ -359,7 +363,7 @@ public class BeanDescriptorImpl extends
>>           }
>>
>>           private void buildConstructorConstraints() throws
>> InvocationTargetException, IllegalAccessException {
>> -            for (final Constructor<?> cons :
>> Reflection.INSTANCE.getDeclaredConstructors(metaBean.getBeanClass()))
>> {
>> +            for (final Constructor<?> cons :
>> Reflection.getDeclaredConstructors(metaBean.getBeanClass())) {
>>                   final ConstructorDescriptorImpl consDesc = new
>> ConstructorDescriptorImpl(metaBean, EMPTY_VALIDATION);
>>
>> contructorConstraints.put(Arrays.toString(cons.getParameterTypes()),
>> consDesc);
>>
>> @@ -500,7 +504,7 @@ public class BeanDescriptorImpl extends
>>               final List<Class<?>> classHierarchy =
>> ClassHelper.fillFullClassHierarchyAsList(new ArrayList<Class<?>>(),
>> current);
>>               classHierarchy.remove(current);
>>
>> -            for (final Method method :
>> Reflection.INSTANCE.getDeclaredMethods(current)) {
>> +            for (final Method method :
>> Reflection.getDeclaredMethods(current)) {
>>                   if (Modifier.isStatic(method.getModifiers()) ||
>> method.isSynthetic()) {
>>                       continue;
>>                   }
>> @@ -518,10 +522,10 @@ public class BeanDescriptorImpl extends
>>
>>                   final Collection<Method> parents = new
>> ArrayList<Method>();
>>                   for (final Class<?> clazz : classHierarchy) {
>> -                    final Method overriden =
>> Reflection.INSTANCE.getDeclaredMethod(clazz, method.getName(),
>> method.getParameterTypes());
>> -                    if (overriden != null) {
>> -                        parents.add(overriden);
>> -                        processMethod(overriden, methodDesc);
>> +                    final Method overridden =
>> Reflection.getDeclaredMethod(clazz, method.getName(),
>> method.getParameterTypes());
>> +                    if (overridden != null) {
>> +                        parents.add(overridden);
>> +                        processMethod(overridden, methodDesc);
>>                       }
>>                   }
>>
>> @@ -564,7 +568,7 @@ public class BeanDescriptorImpl extends
>>                       final Class<?>[] interfaces =
>> method.getDeclaringClass().getInterfaces();
>>                       final Collection<Method> itfWithThisMethod = new
>> ArrayList<Method>();
>>                       for (final Class<?> i : interfaces) {
>> -                        final Method m =
>> Reflection.INSTANCE.getDeclaredMethod(i, method.getName(),
>> method.getParameterTypes());
>> +                        final Method m =
>> Reflection.getDeclaredMethod(i, method.getName(),
>> method.getParameterTypes());
>>                           if (m != null) {
>>                               itfWithThisMethod.add(m);
>>                           }
>> @@ -582,9 +586,9 @@ public class BeanDescriptorImpl extends
>>                           returnValid++;
>>                       }
>>                       for (final Class<?> clazz : classHierarchy) {
>> -                        final Method overriden =
>> Reflection.INSTANCE.getDeclaredMethod(clazz, method.getName(),
>> method.getParameterTypes());
>> -                        if (overriden != null) {
>> -                            if (overriden.getAnnotation(Valid.class) !=
>> null) {
>> +                        final Method overridden =
>> Reflection.getDeclaredMethod(clazz, method.getName(),
>> method.getParameterTypes());
>> +                        if (overridden != null) {
>> +                            if (overridden.getAnnotation(Valid.class)
>> != null) {
>>                                   returnValid++;
>>                               }
>>                           }
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ClassValidator.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,6 +18,33 @@
>>    */
>>   package org.apache.bval.jsr;
>>
>> +import java.lang.reflect.Constructor;
>> +import java.lang.reflect.Member;
>> +import java.lang.reflect.Method;
>> +import java.lang.reflect.Modifier;
>> +import java.util.ArrayList;
>> +import java.util.Arrays;
>> +import java.util.Collection;
>> +import java.util.Collections;
>> +import java.util.HashSet;
>> +import java.util.List;
>> +import java.util.Map;
>> +import java.util.Set;
>> +
>> +import javax.validation.ConstraintDeclarationException;
>> +import javax.validation.ConstraintDefinitionException;
>> +import javax.validation.ConstraintTarget;
>> +import javax.validation.ConstraintViolation;
>> +import javax.validation.ElementKind;
>> +import javax.validation.ValidationException;
>> +import javax.validation.executable.ExecutableValidator;
>> +import javax.validation.groups.Default;
>> +import javax.validation.metadata.BeanDescriptor;
>> +import javax.validation.metadata.ConstraintDescriptor;
>> +import javax.validation.metadata.ElementDescriptor;
>> +import javax.validation.metadata.ParameterDescriptor;
>> +import javax.validation.metadata.PropertyDescriptor;
>> +
>>   import org.apache.bval.DynamicMetaBean;
>>   import org.apache.bval.MetaBeanFinder;
>>   import org.apache.bval.jsr.groups.Group;
>> @@ -40,34 +67,7 @@ import org.apache.commons.lang3.ArrayUti
>>   import org.apache.commons.lang3.ClassUtils;
>>   import org.apache.commons.lang3.ObjectUtils;
>>   import org.apache.commons.lang3.reflect.TypeUtils;
>> -
>> -import javax.validation.ConstraintDeclarationException;
>> -import javax.validation.ConstraintDefinitionException;
>> -import javax.validation.ConstraintTarget;
>> -import javax.validation.ConstraintViolation;
>> -import javax.validation.ElementKind;
>> -import javax.validation.ValidationException;
>> -import javax.validation.executable.ExecutableValidator;
>> -import javax.validation.groups.Default;
>> -import javax.validation.metadata.BeanDescriptor;
>> -import javax.validation.metadata.ConstraintDescriptor;
>> -import javax.validation.metadata.ElementDescriptor;
>> -import javax.validation.metadata.ParameterDescriptor;
>> -import javax.validation.metadata.PropertyDescriptor;
>> -import java.lang.reflect.Constructor;
>> -import java.lang.reflect.Member;
>> -import java.lang.reflect.Method;
>> -import java.lang.reflect.Modifier;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>> -import java.util.ArrayList;
>> -import java.util.Arrays;
>> -import java.util.Collection;
>> -import java.util.Collections;
>> -import java.util.HashSet;
>> -import java.util.List;
>> -import java.util.Map;
>> -import java.util.Set;
>> +import org.apache.commons.weaver.privilizer.Privileged;
>>
>>   // TODO: centralize treatMapsLikeBeans
>>
>> @@ -312,18 +312,8 @@ public class ClassValidator implements C
>>           return this;
>>       }
>>
>> +    @Privileged
>>       private <T> T newInstance(final Class<T> cls) {
>> -        if (System.getSecurityManager() == null) {
>> -            return doNewInstance(cls);
>> -        }
>> -        return AccessController.doPrivileged(new PrivilegedAction<T>() {
>> -            public T run() {
>> -                return doNewInstance(cls);
>> -            }
>> -        });
>> -    }
>> -
>> -    private <T> T doNewInstance(final Class<T> cls) {
>>           try {
>>               Constructor<T> cons =
>> cls.getConstructor(ApacheFactoryContext.class);
>>               if (!cons.isAccessible()) {
>> @@ -399,6 +389,7 @@ public class ClassValidator implements C
>>
>>                   // For each owner in the hierarchy
>>                   for (final Class<?> owner : classHierarchy) {
>> +
>>                       context.setCurrentOwner(owner);
>>
>>                       int numViolations = result.violationsSize();
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConfigurationImpl.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,11 +18,16 @@
>>    */
>>   package org.apache.bval.jsr;
>>
>> -import org.apache.bval.cdi.BValExtension;
>> -import org.apache.bval.jsr.parameter.DefaultParameterNameProvider;
>> -import org.apache.bval.jsr.resolver.DefaultTraversableResolver;
>> -import org.apache.bval.jsr.util.IOs;
>> -import org.apache.bval.jsr.xml.ValidationParser;
>> +import java.io.Closeable;
>> +import java.io.IOException;
>> +import java.io.InputStream;
>> +import java.util.Collection;
>> +import java.util.HashMap;
>> +import java.util.HashSet;
>> +import java.util.List;
>> +import java.util.Map;
>> +import java.util.Set;
>> +import java.util.concurrent.CopyOnWriteArrayList;
>>
>>   import javax.validation.BootstrapConfiguration;
>>   import javax.validation.ConstraintValidatorFactory;
>> @@ -36,18 +41,13 @@ import javax.validation.executable.Execu
>>   import javax.validation.spi.BootstrapState;
>>   import javax.validation.spi.ConfigurationState;
>>   import javax.validation.spi.ValidationProvider;
>> -import java.io.Closeable;
>> -import java.io.IOException;
>> -import java.io.InputStream;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>> -import java.util.Collection;
>> -import java.util.HashMap;
>> -import java.util.HashSet;
>> -import java.util.List;
>> -import java.util.Map;
>> -import java.util.Set;
>> -import java.util.concurrent.CopyOnWriteArrayList;
>> +
>> +import org.apache.bval.cdi.BValExtension;
>> +import org.apache.bval.jsr.parameter.DefaultParameterNameProvider;
>> +import org.apache.bval.jsr.resolver.DefaultTraversableResolver;
>> +import org.apache.bval.jsr.util.IOs;
>> +import org.apache.bval.jsr.xml.ValidationParser;
>> +import org.apache.commons.weaver.privilizer.Privileged;
>>
>>   /**
>>    * Description: used to configure apache-validation for jsr.
>> @@ -98,7 +98,7 @@ public class ConfigurationImpl implement
>>
>>       protected Collection<ExecutableType> executableValidation;
>>
>> -    private Collection<BValExtension.Releasable> releasables = new
>> CopyOnWriteArrayList<BValExtension.Releasable>();
>> +    private Collection<BValExtension.Releasable<?>> releasables = new
>> CopyOnWriteArrayList<BValExtension.Releasable<?>>();
>>
>>       private boolean beforeCdi = false;
>>
>> @@ -305,27 +305,18 @@ public class ConfigurationImpl implement
>>        * @throws ValidationException if the ValidatorFactory cannot be built
>>        */
>>       public ValidatorFactory buildValidatorFactory() {
>> -        if (System.getSecurityManager() == null) {
>> -            return doPrivBuildValidatorFactory(this);
>> -        }
>> -        return AccessController.doPrivileged(new
>> PrivilegedAction<ValidatorFactory>() {
>> -            public ValidatorFactory run() {
>> -                return
>> doPrivBuildValidatorFactory(ConfigurationImpl.this);
>> -            }
>> -        });
>> +            return doBuildValidatorFactory();
>>       }
>>
>> -    public ValidatorFactory doPrivBuildValidatorFactory(final
>> ConfigurationImpl impl) {
>> +    @Privileged
>> +    private ValidatorFactory doBuildValidatorFactory() {
>>           prepare();
>>           parser.ensureValidatorFactoryCanBeBuilt();
>> -        if (provider != null) {
>> -            return provider.buildValidatorFactory(impl);
>> -        } else {
>> -            return findProvider().buildValidatorFactory(impl);
>> -        }
>> +        final ValidationProvider<?> useProvider = provider == null ?
>> findProvider() : provider;
>> +        return useProvider.buildValidatorFactory(this);
>>       }
>>
>> -    public ConfigurationImpl prepare() {
>> +    private ConfigurationImpl prepare() {
>>           if (prepared) {
>>               return this;
>>           }
>> @@ -466,38 +457,19 @@ public class ConfigurationImpl implement
>>           };
>>       }
>>
>> +    @Privileged
>>       private <T> T newInstance(final Class<T> cls) {
>> -        if (System.getSecurityManager() == null) {
>> -            return createInstance(cls);
>> -        }
>> -        return AccessController.doPrivileged(new PrivilegedAction<T>() {
>> -            public T run() {
>> -                return createInstance(cls);
>> -            }
>> -        });
>> -    }
>> -
>> -    private <T> T createInstance(final Class<T> cls) {
>>           try {
>>               final BValExtension.Releasable<T> releasable =
>> BValExtension.inject(cls);
>>               releasables.add(releasable);
>>               return releasable.getInstance();
>>           } catch (final Exception e) {
>> -            try {
>> -                return cls.newInstance();
>> -            } catch (final InstantiationException e1) {
>> -                throw new ValidationException(e1.getMessage(), e1);
>> -            } catch (final IllegalAccessException e1) {
>> -                throw new ValidationException(e1.getMessage(), e1);
>> -            }
>>           } catch (final NoClassDefFoundError error) {
>> -            try {
>> -                return cls.newInstance();
>> -            } catch (final InstantiationException e1) {
>> -                throw new ValidationException(e1.getMessage(), e1);
>> -            } catch (final IllegalAccessException e1) {
>> -                throw new ValidationException(e1.getMessage(), e1);
>> -            }
>> +        }
>> +        try {
>> +            return cls.newInstance();
>> +        } catch (final Exception e) {
>> +            throw new ValidationException(e.getMessage(), e);
>>           }
>>       }
>>
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintAnnotationAttributes.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,15 +18,17 @@ package org.apache.bval.jsr;
>>
>>   import org.apache.bval.util.reflection.Reflection;
>>   import org.apache.commons.lang3.reflect.TypeUtils;
>> +import org.apache.commons.weaver.privilizer.Privileged;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.Constraint;
>>   import javax.validation.ConstraintTarget;
>>   import javax.validation.Payload;
>> +
>>   import java.lang.annotation.Annotation;
>>   import java.lang.reflect.Method;
>>   import java.lang.reflect.Type;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>>   import java.util.Map;
>>   import java.util.concurrent.ConcurrentHashMap;
>>   import java.util.concurrent.ConcurrentMap;
>> @@ -40,27 +42,27 @@ public enum ConstraintAnnotationAttribut
>>       /**
>>        * "message"
>>        */
>> -    MESSAGE(false, "message"),
>> +    MESSAGE("message"),
>>
>>       /**
>>        * "groups"
>>        */
>> -    GROUPS(false, "groups"),
>> +    GROUPS("groups"),
>>
>>       /**
>>        * "payload"
>>        */
>> -    PAYLOAD(false, "payload"),
>> +    PAYLOAD("payload"),
>>
>>       /**
>>        * "validationAppliesTo"
>>        */
>> -    VALIDATION_APPLIES_TO(true, "validationAppliesTo"),
>> +    VALIDATION_APPLIES_TO("validationAppliesTo"),
>>
>>       /**
>>        * "value" for multi-valued constraints
>>        */
>> -    VALUE(true, "value");
>> +    VALUE("value");
>>
>>       @SuppressWarnings("unused")
>>       private static class Types {
>> @@ -72,11 +74,9 @@ public enum ConstraintAnnotationAttribut
>>       }
>>
>>       private final Type type;
>> -    private final boolean permitNullDefaultValue;
>>       private final String attributeName;
>>
>> -    private ConstraintAnnotationAttributes(final boolean
>> permitNullDefaultValue, final String name) {
>> -        this.permitNullDefaultValue = permitNullDefaultValue;
>> +    private ConstraintAnnotationAttributes(final String name) {
>>           this.attributeName = name;
>>           try {
>>               this.type =
>> Types.class.getDeclaredField(getAttributeName()).getGenericType();
>> @@ -133,6 +133,7 @@ public enum ConstraintAnnotationAttribut
>>
>>       public <C extends Annotation> Worker<C> analyze(final Class<C> clazz)
>> {
>>           if (clazz.getName().startsWith("javax.validation.constraint."))
>> { // cache only APIs classes to avoid memory leaks
>> +            @SuppressWarnings("unchecked")
>>               Worker<C> w = Worker.class.cast(WORKER_CACHE.get(clazz));
>>               if (w == null) {
>>                   w = new Worker<C>(clazz);
>> @@ -154,6 +155,8 @@ public enum ConstraintAnnotationAttribut
>>               throw new RuntimeException("Impossible normally");
>>           }
>>       }
>> +
>> +    @Privilizing(@CallTo(Reflection.class))
>>       public class Worker<C extends Annotation> {
>>
>>           public final Method method;
>> @@ -180,7 +183,7 @@ public enum ConstraintAnnotationAttribut
>>               if (found != null) {
>>                   return found;
>>               }
>> -            final Method m =
>> Reflection.INSTANCE.getPublicMethod(constraintType, attributeName);
>> +            final Method m =
>> Reflection.getPublicMethod(constraintType, attributeName);
>>               if (m == null) {
>>                   cache.putIfAbsent(attributeName, NULL_METHOD);
>>                   return null;
>> @@ -199,17 +202,13 @@ public enum ConstraintAnnotationAttribut
>>               return method != null && method != NULL_METHOD;
>>           }
>>
>> -        public Object read(final Annotation constraint) {
>> -            if (System.getSecurityManager() == null) {
>> -                return doInvoke(constraint);
>> -            }
>> -            return AccessController.doPrivileged(new
>> PrivilegedAction<Object>() {
>> -                public Object run() {
>> -                    return doInvoke(constraint);
>> -                }
>> -            });
>> +        public <T> T read(final Annotation constraint) {
>> +            @SuppressWarnings("unchecked")
>> +            final T result = (T) doInvoke(constraint);
>> +            return result;
>>           }
>>
>> +        @Privileged
>>           private Object doInvoke(final Annotation constraint) {
>>               try {
>>                   return method.invoke(constraint);
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintDefaults.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,12 +18,9 @@
>>    */
>>   package org.apache.bval.jsr;
>>
>> -import javax.validation.ConstraintValidator;
>>   import java.io.IOException;
>>   import java.io.InputStream;
>>   import java.lang.annotation.Annotation;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>>   import java.util.HashMap;
>>   import java.util.LinkedList;
>>   import java.util.Map;
>> @@ -32,10 +29,17 @@ import java.util.StringTokenizer;
>>   import java.util.logging.Level;
>>   import java.util.logging.Logger;
>>
>> +import javax.validation.ConstraintValidator;
>> +
>> +import org.apache.bval.util.reflection.Reflection;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>> +
>>   /**
>>    * Description: Provides access to the default constraints/validator
>> implementation classes built into the framework.
>>    * These are configured in DefaultConstraints.properties.<br/>
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class ConstraintDefaults {
>>       private static final Logger log =
>> Logger.getLogger(ConstraintDefaults.class.getName());
>>       private static final String DEFAULT_CONSTRAINTS =
>> @@ -101,31 +105,11 @@ public class ConstraintDefaults {
>>               while (tokens.hasMoreTokens()) {
>>                   final String eachClassName = tokens.nextToken();
>>
>> -                Class<?> constraintValidatorClass;
>> -                if (System.getSecurityManager() == null) {
>> -                    try {
>> -                        constraintValidatorClass =
>> Class.forName(eachClassName, true, classloader);
>> -                    } catch (final ClassNotFoundException e) {
>> -                        log.log(Level.SEVERE, String.format("Cannot
>> find class %s", eachClassName), e);
>> -                        constraintValidatorClass = null;
>> -                    }
>> -                } else {
>> -                    constraintValidatorClass =
>> AccessController.doPrivileged(new PrivilegedAction<Class<?>>() {
>> -                          public Class<?> run() {
>> -                              try {
>> -                                  return Class.forName(eachClassName,
>> true, classloader);
>> -                              } catch (final ClassNotFoundException e) {
>> -                                  log.log(Level.SEVERE,
>> String.format("Cannot find class %s", eachClassName), e);
>> -                                  return null;
>> -                              }
>> -                          }
>> -                      });
>> -                }
>> -
>> -                if (constraintValidatorClass != null) {
>> -                    classes.add(constraintValidatorClass);
>> +                try {
>> +                    classes.add(Reflection.getClass(classloader,
>> eachClassName));
>> +                } catch (Exception e) {
>> +                    log.log(Level.SEVERE, String.format("Cannot find
>> class %s", eachClassName), e);
>>                   }
>> -
>>               }
>>
>>               loadedConstraints.put((String) entry.getKey(),
>> classes.toArray(new Class[classes.size()]));
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/ConstraintValidation.java
>> Wed Oct  1 04:37:36 2014
>> @@ -234,7 +234,7 @@ public class ConstraintValidation<T exte
>>       }
>>
>>       private <A extends Annotation, T> ConstraintValidator<A, ? super
>> T> getConstraintValidator(A annotation,
>> -
>>                           Class<? extends ConstraintValidator<A, ?>>[]
>> constraintClasses, Class<?> owner, AccessStrategy access) {
>> +        Class<? extends ConstraintValidator<A, ?>>[]
>> constraintClasses, Class<?> owner, AccessStrategy access) {
>>           if (constraintClasses != null && constraintClasses.length > 0) {
>>               Type type = determineTargetedType(owner, access);
>>
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultMessageInterpolator.java
>> Wed Oct  1 04:37:36 2014
>> @@ -19,8 +19,11 @@ package org.apache.bval.jsr;
>>   import org.apache.bval.el.MessageEvaluator;
>>   import org.apache.bval.util.reflection.Reflection;
>>   import org.apache.commons.lang3.ArrayUtils;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.MessageInterpolator;
>> +
>>   import java.util.Locale;
>>   import java.util.Map;
>>   import java.util.MissingResourceException;
>> @@ -37,6 +40,7 @@ import java.util.regex.Pattern;
>>    * into human-readable messages. It uses ResourceBundles to find the
>> messages.
>>    * This class is threadsafe.<br/>
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class DefaultMessageInterpolator implements MessageInterpolator {
>>       private static final Logger log =
>> Logger.getLogger(DefaultMessageInterpolator.class.getName());
>>       private static final boolean LOG_FINEST =
>> log.isLoggable(Level.FINEST);
>> @@ -168,7 +172,7 @@ public class DefaultMessageInterpolator
>>        */
>>       private ResourceBundle getFileBasedResourceBundle(Locale locale) {
>>           ResourceBundle rb = null;
>> -        final ClassLoader classLoader =
>> Reflection.INSTANCE.getClassLoader(DefaultMessageInterpolator.class);
>> +        final ClassLoader classLoader =
>> Reflection.getClassLoader(DefaultMessageInterpolator.class);
>>           if (classLoader != null) {
>>               rb = loadBundle(classLoader, locale,
>>                     USER_VALIDATION_MESSAGES + " not found by thread
>> local classloader");
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/DefaultValidationProviderResolver.java
>> Wed Oct  1 04:37:36 2014
>> @@ -17,19 +17,23 @@
>>   package org.apache.bval.jsr;
>>
>>
>> -import javax.validation.ValidationException;
>> -import javax.validation.ValidationProviderResolver;
>> -import javax.validation.spi.ValidationProvider;
>>   import java.io.BufferedReader;
>>   import java.io.IOException;
>>   import java.io.InputStreamReader;
>>   import java.net.URL;
>> -import java.security.AccessController;
>> -import java.security.PrivilegedAction;
>>   import java.util.ArrayList;
>>   import java.util.Enumeration;
>>   import java.util.List;
>>
>> +import javax.validation.ValidationException;
>> +import javax.validation.ValidationProviderResolver;
>> +import javax.validation.spi.ValidationProvider;
>> +
>> +import org.apache.bval.util.reflection.Reflection;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>> +
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class DefaultValidationProviderResolver implements
>> ValidationProviderResolver {
>>
>>       //TODO - Spec recommends caching per classloader
>> @@ -49,7 +53,7 @@ public class DefaultValidationProviderRe
>>               // find all service provider cfgs
>>               Enumeration<URL> cfgs = cl.getResources(SPI_CFG);
>>               while (cfgs.hasMoreElements()) {
>> -                URL url = cfgs.nextElement();
>> +                final URL url = cfgs.nextElement();
>>                   BufferedReader br = null;
>>                   try {
>>                       br = new BufferedReader(new
>> InputStreamReader(url.openStream()), 256);
>> @@ -60,27 +64,11 @@ public class DefaultValidationProviderRe
>>                           if (!line.startsWith("#")) {
>>                               try {
>>                                   // try loading the specified class
>> -                                final Class<?> provider =
>> cl.loadClass(line);
>> +                                @SuppressWarnings("rawtypes")
>> +                                final Class<? extends
>> ValidationProvider> providerType =
>> +
>> cl.loadClass(line).asSubclass(ValidationProvider.class);
>>                                   // create an instance to return
>> -                                final ValidationProvider<?> vp;
>> -                                if (System.getSecurityManager() == null) {
>> -                                    try {
>> -                                        vp = (ValidationProvider<?>)
>> provider.newInstance();
>> -                                    } catch (final Exception ex) {
>> -                                        throw new
>> ValidationException("Cannot instantiate : " + provider, ex);
>> -                                    }
>> -                                } else {
>> -                                    vp =
>> AccessController.doPrivileged(new
>> PrivilegedAction<ValidationProvider<?>>() {
>> -                                        public ValidationProvider<?>
>> run() {
>> -                                            try {
>> -                                                return
>> (ValidationProvider<?>) provider.newInstance();
>> -                                            } catch (final Exception ex) {
>> -                                                throw new
>> ValidationException("Cannot instantiate : " + provider, ex);
>> -                                            }
>> -                                        }
>> -                                    });
>> -                                }
>> -                                providers.add(vp);
>> +
>>
>> providers.add(Reflection.newInstance(providerType.asSubclass(ValidationProvider.class)));
>>
>>                               } catch (ClassNotFoundException e) {
>>                                   throw new ValidationException("Failed
>> to load provider " +
>> @@ -89,12 +77,12 @@ public class DefaultValidationProviderRe
>>                           }
>>                           line = br.readLine();
>>                       }
>> -                    br.close();
>>                   } catch (IOException e) {
>>                       throw new ValidationException("Error trying to
>> read " + url, e);
>>                   } finally {
>> -                    if (br != null)
>> +                    if (br != null) {
>>                           br.close();
>> +                    }
>>                   }
>>               }
>>           } catch (IOException e) {
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/JsrMetaBeanFactory.java
>> Wed Oct  1 04:37:36 2014
>> @@ -32,12 +32,15 @@ import org.apache.bval.util.AccessStrate
>>   import org.apache.bval.util.FieldAccess;
>>   import org.apache.bval.util.MethodAccess;
>>   import org.apache.bval.util.reflection.Reflection;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.ConstraintDeclarationException;
>>   import javax.validation.GroupDefinitionException;
>>   import javax.validation.GroupSequence;
>>   import javax.validation.groups.ConvertGroup;
>>   import javax.validation.groups.Default;
>> +
>>   import java.io.Serializable;
>>   import java.lang.annotation.Annotation;
>>   import java.lang.annotation.ElementType;
>> @@ -55,6 +58,7 @@ import java.util.logging.Logger;
>>    * Description: process the class annotations for JSR303 constraint
>> validations to build the MetaBean with information
>>    * from annotations and JSR303 constraint mappings (defined in xml)<br/>
>>    */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class JsrMetaBeanFactory implements MetaBeanFactory {
>>       /** Shared log instance */
>>       // of dubious utility as it's static :/
>> @@ -87,8 +91,8 @@ public class JsrMetaBeanFactory implemen
>>               processGroupSequence(beanClass, metabean);
>>
>>               // process class, superclasses and interfaces
>> -            List<Class<?>> classSequence = new ArrayList<Class<?>>();
>> -            ClassHelper.fillFullClassHierarchyAsList(classSequence,
>> beanClass);
>> +            final List<Class<?>> classSequence =
>> +                ClassHelper.fillFullClassHierarchyAsList(new
>> ArrayList<Class<?>>(), beanClass);
>>
>>               // start with superclasses and go down the hierarchy so that
>>               // the child classes are processed last to have the chance to
>> @@ -126,7 +130,7 @@ public class JsrMetaBeanFactory implemen
>>
>>           final Collection<String> missingValid = new ArrayList<String>();
>>
>> -        final Field[] fields =
>> Reflection.INSTANCE.getDeclaredFields(beanClass);
>> +        final Field[] fields = Reflection.getDeclaredFields(beanClass);
>>           for (final Field field : fields) {
>>               MetaProperty metaProperty =
>> metabean.getProperty(field.getName());
>>               // create a property for those fields for which there is not
>> yet a
>> @@ -147,7 +151,7 @@ public class JsrMetaBeanFactory implemen
>>                   }
>>               }
>>           }
>> -        final Method[] methods =
>> Reflection.INSTANCE.getDeclaredMethods(beanClass);
>> +        final Method[] methods = Reflection.getDeclaredMethods(beanClass);
>>           for (final Method method : methods) {
>>               if (method.isSynthetic() || method.isBridge()) {
>>                   continue;
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/DefaultTraversableResolver.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/DefaultTraversableResolver.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/DefaultTraversableResolver.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/resolver/DefaultTraversableResolver.java
>> Wed Oct  1 04:37:36 2014
>> @@ -18,14 +18,18 @@ package org.apache.bval.jsr.resolver;
>>
>>   import org.apache.bval.util.reflection.Reflection;
>>   import org.apache.commons.lang3.ClassUtils;
>> +import org.apache.commons.weaver.privilizer.Privilizing;
>> +import org.apache.commons.weaver.privilizer.Privilizing.CallTo;
>>
>>   import javax.validation.Path;
>>   import javax.validation.TraversableResolver;
>> +
>>   import java.lang.annotation.ElementType;
>>   import java.util.logging.Level;
>>   import java.util.logging.Logger;
>>
>>   /** @see javax.validation.TraversableResolver */
>> +@Privilizing(@CallTo(Reflection.class))
>>   public class DefaultTraversableResolver implements
>> TraversableResolver, CachingRelevant {
>>       private static final Logger log =
>> Logger.getLogger(DefaultTraversableResolver.class.getName());
>>       private static final boolean LOG_FINEST =
>> log.isLoggable(Level.FINEST);
>> @@ -71,9 +75,9 @@ public class DefaultTraversableResolver
>>       /** Tries to load detect and load JPA. */
>>       @SuppressWarnings("unchecked")
>>       private void initJpa() {
>> -        final ClassLoader classLoader = getClassLoader();
>> +        final ClassLoader classLoader =
>> Reflection.getClassLoader(DefaultTraversableResolver.class);
>>           try {
>> -            Reflection.INSTANCE.getClass(classLoader,
>> PERSISTENCE_UTIL_CLASSNAME);
>> +            Reflection.getClass(classLoader, PERSISTENCE_UTIL_CLASSNAME);
>>               if (LOG_FINEST) {
>>                   log.log(Level.FINEST, String.format("Found %s on
>> classpath.", PERSISTENCE_UTIL_CLASSNAME));
>>               }
>> @@ -101,9 +105,4 @@ public class DefaultTraversableResolver
>>       public boolean needsCaching() {
>>           return jpaTR != null &&
>> CachingTraversableResolver.needsCaching(jpaTR);
>>       }
>> -
>> -    private static ClassLoader getClassLoader()
>> -    {
>> -      return
>> Reflection.INSTANCE.getClassLoader(DefaultTraversableResolver.class);
>> -    }
>>   }
>>
>> Modified:
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java
>> URL:
>> http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java?rev=1628598&r1=1628597&r2=1628598&view=diff
>>
>> ==============================================================================
>> ---
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java
>> (original)
>> +++
>> bval/branches/bval-11/bval-jsr/src/main/java/org/apache/bval/jsr/util/ClassHelper.java
>> Wed Oct  1 04:37:36 2014
>> @@ -43,6 +43,7 @@ public class ClassHelper {
>>        *            The current list of classes in the hierarchy.
>>        * @param clazz
>>        */
>> +    @Deprecated
>>       static public List<Class<?>>
>> fillFullClassHierarchyAsList(List<Class<?>> allClasses, Class<?>
>> clazz) {
>>           if (clazz == null || clazz == Object.class || clazz ==
>> Serializable.class || clazz == Cloneable.class) {
>>               return allClasses;
>> @@ -58,26 +59,4 @@ public class ClassHelper {
>>           return allClasses;
>>       }
>>
>> -    /**
>> -     * @deprecated Will be removed for security reasons.
>> -     *
>> -     * Perform ClassUtils.getClass functions with Java 2 Security enabled.
>> -     */
>> -    @Deprecated
>> -    public static Class<?> getClass(String className) throws
>> ClassNotFoundException {
>> -        return getClass(className, true);
>> -    }
>> -
>> -    /**
>> -     * @deprecated Will be removed for security reasons.
>> -     *
>> -     * Perform ClassUtils.getClass functions with Java 2 Security enabled.
>> -     */
>> -    @Deprecated
>> -    public static Class<?> getClass(String className, boolean
>> initialize) throws ClassNotFoundException {
>> -        ClassLoader loader =
>> Thread.currentThread().getContextClassLoader();
>> -        if (loader == null)
>> -          loader = ClassHelper.class.getClassLoader();
>> -        return ClassUtils.getClass(loader, className, initialize);
>> -    }
>>   }
>>
>
>


Mime
View raw message