works fine with:
Apache Maven 3.2.2 (45f7c06d68e745d05611f7fd14efb6594181933e;
2014-06-17T15:51:42+02:00)
Maven home: /home/rmannibucau/softwares/apache-maven-3.2.2
Java version: 1.7.0_67, vendor: Oracle Corporation
Java home: /home/rmannibucau/softwares/jdk1.7.0_67/jre
Default locale: fr_FR, platform encoding: UTF-8
OS name: "linux", version: "3.13.0-40-generic", arch: "amd64", family: "unix"
Romain Manni-Bucau
@rmannibucau
http://www.tomitribe.com
http://rmannibucau.wordpress.com
https://github.com/rmannibucau
2014-12-06 15:51 GMT+01:00 Daniel Cunha <danielsoro@gmail.com>:
> I have a same problem with JDK 7.
>
> On Sat, Dec 6, 2014 at 12:57 PM, Romain Manni-Bucau <rmannibucau@gmail.com>
> wrote:
>
>> Yep
>>
>> Not an issue afaik
>> Le 6 déc. 2014 13:41, "Roman Stumm" <roman.stumm@gmx.de> a écrit :
>>
>> > 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.BeanDe
>> >>
>> >> ...
>>
>
>
>
> --
> Daniel Cunha (soro) <http://www.cejug.net>
> Blog: http://www.danielsoro.com.br
> Twitter: https://twitter.com/dvlc_
> GitHub: https://github.com/danielsoro
> LinkedIn: http://www.linkedin.com/in/danielvlcunha
|