You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bval.apache.org by rm...@apache.org on 2013/08/16 09:15:05 UTC
svn commit: r1514597 - in
/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303:
AnnotationConstraintBuilder.java xml/AnnotationProxyBuilder.java
xml/ValidationMappingParser.java
Author: rmannibucau
Date: Fri Aug 16 07:15:05 2013
New Revision: 1514597
URL: http://svn.apache.org/r1514597
Log:
reusing cache of built in constraints in AnnotationConstraintBuilder
Modified:
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/AnnotationConstraintBuilder.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/AnnotationProxyBuilder.java
bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationMappingParser.java
Modified: bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/AnnotationConstraintBuilder.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/AnnotationConstraintBuilder.java?rev=1514597&r1=1514596&r2=1514597&view=diff
==============================================================================
--- bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/AnnotationConstraintBuilder.java (original)
+++ bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/AnnotationConstraintBuilder.java Fri Aug 16 07:15:05 2013
@@ -21,7 +21,6 @@ package org.apache.bval.jsr303;
import org.apache.bval.jsr303.groups.GroupsComputer;
import org.apache.bval.jsr303.xml.AnnotationProxyBuilder;
import org.apache.bval.util.AccessStrategy;
-import org.apache.bval.util.reflection.Reflection;
import javax.validation.Constraint;
import javax.validation.ConstraintDeclarationException;
@@ -99,7 +98,7 @@ final class AnnotationConstraintBuilder<
private void doBuildFromAnnotations() {
final Class<? extends Annotation> annotationType = constraintValidation.getAnnotation().annotationType();
- for (final Method method : Reflection.INSTANCE.getDeclaredMethods(annotationType)) {
+ for (final Method method : AnnotationProxyBuilder.findMethods(annotationType)) {
// groups + payload must also appear in attributes (also
// checked by TCK-Tests)
if (method.getParameterTypes().length == 0) {
Modified: bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/AnnotationProxyBuilder.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/AnnotationProxyBuilder.java?rev=1514597&r1=1514596&r2=1514597&view=diff
==============================================================================
--- bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/AnnotationProxyBuilder.java (original)
+++ bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/AnnotationProxyBuilder.java Fri Aug 16 07:15:05 2013
@@ -56,19 +56,22 @@ final public class AnnotationProxyBuilde
*/
public AnnotationProxyBuilder(final Class<A> annotationType) {
this.type = annotationType;
+ this.methods = findMethods(annotationType);
+ }
+
+ public static <A> Method[] findMethods(final Class<A> annotationType) {
if (annotationType.getName().startsWith("javax.validation.constraints.")) { // cache built-in constraints only to avoid mem leaks
Method[] mtd = METHODS_CACHE.get(annotationType);
if (mtd == null) {
- final Method[] value = Reflection.INSTANCE.getDeclaredMethods(type);
+ final Method[] value = Reflection.INSTANCE.getDeclaredMethods(annotationType);
mtd = METHODS_CACHE.putIfAbsent(annotationType, value);
if (mtd == null) {
mtd = value;
}
}
- this.methods = mtd;
- } else {
- this.methods = Reflection.INSTANCE.getDeclaredMethods(type);
+ return mtd;
}
+ return Reflection.INSTANCE.getDeclaredMethods(annotationType);
}
/**
Modified: bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationMappingParser.java
URL: http://svn.apache.org/viewvc/bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationMappingParser.java?rev=1514597&r1=1514596&r2=1514597&view=diff
==============================================================================
--- bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationMappingParser.java (original)
+++ bval/branches/bval-11/bval-jsr303/src/main/java/org/apache/bval/jsr303/xml/ValidationMappingParser.java Fri Aug 16 07:15:05 2013
@@ -111,17 +111,16 @@ public class ValidationMappingParser {
}
/** @param in XML stream to parse using the validation-mapping-1.0.xsd */
- private ConstraintMappingsType parseXmlMappings(InputStream in) {
+ private ConstraintMappingsType parseXmlMappings(final InputStream in) {
ConstraintMappingsType mappings;
try {
- JAXBContext jc = JAXBContext.newInstance(ConstraintMappingsType.class);
- Unmarshaller unmarshaller = jc.createUnmarshaller();
+ final JAXBContext jc = JAXBContext.newInstance(ConstraintMappingsType.class);
+ final Unmarshaller unmarshaller = jc.createUnmarshaller();
unmarshaller.setSchema(getSchema());
- StreamSource stream = new StreamSource(in);
- JAXBElement<ConstraintMappingsType> root =
- unmarshaller.unmarshal(stream, ConstraintMappingsType.class);
+ final StreamSource stream = new StreamSource(in);
+ final JAXBElement<ConstraintMappingsType> root = unmarshaller.unmarshal(stream, ConstraintMappingsType.class);
mappings = root.getValue();
- } catch (JAXBException e) {
+ } catch (final JAXBException e) {
throw new ValidationException("Failed to parse XML deployment descriptor file.", e);
} finally {
IOUtils.closeQuietly(in);