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 <[email protected]>: > I have a same problem with JDK 7. > > On Sat, Dec 6, 2014 at 12:57 PM, Romain Manni-Bucau <[email protected]> > wrote: > >> Yep >> >> Not an issue afaik >> Le 6 déc. 2014 13:41, "Roman Stumm" <[email protected]> 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 < >> [email protected] >> >> > >> >> 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: <[email protected]> >> >>> 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: [email protected] >> >>> >> >>> >> >>> 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
