You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by jo...@apache.org on 2017/09/04 21:01:50 UTC

svn commit: r1807299 [2/2] - in /geronimo/specs/trunk/geronimo-validation_2.0_spec: ./ src/main/java/javax/validation/ src/main/java/javax/validation/bootstrap/ src/main/java/javax/validation/constraints/ src/main/java/javax/validation/executable/ src/...

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotEmpty.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotEmpty.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotEmpty.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotEmpty.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.constraints;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * @since 2.0
+ */
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+@Retention(RUNTIME)
+@Documented
+@Constraint(validatedBy = {})
+@Repeatable(NotEmpty.List.class)
+public @interface NotEmpty {
+    String message() default "{javax.validation.constraints.NotEmpty.message}";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+    @Retention(RUNTIME)
+    @Documented
+    @interface List {
+        NotEmpty[] value();
+    }
+}

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotNull.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotNull.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotNull.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/NotNull.java Mon Sep  4 21:01:48 2017
@@ -19,6 +19,7 @@ package javax.validation.constraints;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -27,6 +28,7 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
@@ -34,10 +36,11 @@ import static java.lang.annotation.Reten
  *
  * @version $Rev$ $Date$
  */
-@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 @Documented
 @Constraint(validatedBy = {})
+@Repeatable(NotNull.List.class)
 public @interface NotNull {
     String message() default "{javax.validation.constraints.NotNull.message}";
 
@@ -45,11 +48,10 @@ public @interface NotNull {
 
     Class<? extends Payload>[] payload() default {};
 
-    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
     @Retention(RUNTIME)
     @Documented
     @interface List {
         NotNull[] value();
     }
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Null.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Null.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Null.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Null.java Mon Sep  4 21:01:48 2017
@@ -19,6 +19,7 @@ package javax.validation.constraints;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -27,6 +28,7 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
@@ -34,10 +36,11 @@ import static java.lang.annotation.Reten
  *
  * @version $Rev$ $Date$
  */
-@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 @Documented
 @Constraint(validatedBy = {})
+@Repeatable(Null.List.class)
 public @interface Null {
     String message() default "{javax.validation.constraints.Null.message}";
 
@@ -45,11 +48,10 @@ public @interface Null {
 
     Class<? extends Payload>[] payload() default {};
 
-    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
     @Retention(RUNTIME)
     @Documented
     @interface List {
         Null[] value();
     }
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Past.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Past.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Past.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Past.java Mon Sep  4 21:01:48 2017
@@ -19,6 +19,7 @@ package javax.validation.constraints;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -27,20 +28,44 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
+ * <p>
  * Verify that the annotated value of the annotated element is in the past or {@code null}.
- * Supported types are {@link java.util.Calendar} and {@link java.util.Date}
+ * </p>
+ * <p>
+ * Supports:
+ * <ul>
+ * <li>{@code java.util.Date}</li>
+ * <li>{@code java.util.Calendar}</li>
+ * <li>{@code java.time.Instant}</li>
+ * <li>{@code java.time.LocalDate}</li>
+ * <li>{@code java.time.LocalDateTime}</li>
+ * <li>{@code java.time.LocalTime}</li>
+ * <li>{@code java.time.MonthDay}</li>
+ * <li>{@code java.time.OffsetDateTime}</li>
+ * <li>{@code java.time.OffsetTime}</li>
+ * <li>{@code java.time.Year}</li>
+ * <li>{@code java.time.YearMonth}</li>
+ * <li>{@code java.time.ZonedDateTime}</li>
+ * <li>{@code java.time.chrono.HijrahDate}</li>
+ * <li>{@code java.time.chrono.JapaneseDate}</li>
+ * <li>{@code java.time.chrono.MinguoDate}</li>
+ * <li>{@code java.time.chrono.ThaiBuddhistDate}</li>
+ * </ul>
+ * </p>
  *
  * Other types might be supported in a non-portable manner.
  *
  * @version $Rev$ $Date$
  */
-@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 @Documented
 @Constraint(validatedBy = {})
+@Repeatable(Past.List.class)
 public @interface Past {
     String message() default "{javax.validation.constraints.Past.message}";
 
@@ -48,11 +73,10 @@ public @interface Past {
 
     Class<? extends Payload>[] payload() default {};
 
-    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
     @Retention(RUNTIME)
     @Documented
     @interface List {
         Past[] value();
     }
 }
-

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PastOrPresent.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PastOrPresent.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PastOrPresent.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PastOrPresent.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.constraints;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * <p>
+ * Verify that the value of the annotated element is in the past, present or {@code null}.
+ * </p>
+ * <p>
+ * Supports:
+ * <ul>
+ * <li>{@code java.util.Date}</li>
+ * <li>{@code java.util.Calendar}</li>
+ * <li>{@code java.time.Instant}</li>
+ * <li>{@code java.time.LocalDate}</li>
+ * <li>{@code java.time.LocalDateTime}</li>
+ * <li>{@code java.time.LocalTime}</li>
+ * <li>{@code java.time.MonthDay}</li>
+ * <li>{@code java.time.OffsetDateTime}</li>
+ * <li>{@code java.time.OffsetTime}</li>
+ * <li>{@code java.time.Year}</li>
+ * <li>{@code java.time.YearMonth}</li>
+ * <li>{@code java.time.ZonedDateTime}</li>
+ * <li>{@code java.time.chrono.HijrahDate}</li>
+ * <li>{@code java.time.chrono.JapaneseDate}</li>
+ * <li>{@code java.time.chrono.MinguoDate}</li>
+ * <li>{@code java.time.chrono.ThaiBuddhistDate}</li>
+ * </ul>
+ * </p>
+ *
+ * Other types might be supported in a non-portable manner.
+ *
+ * @since 2.0
+ */
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+@Retention(RUNTIME)
+@Documented
+@Constraint(validatedBy = {})
+@Repeatable(PastOrPresent.List.class)
+public @interface PastOrPresent {
+    String message() default "{javax.validation.constraints.PastOrPresent.message}";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+    @Retention(RUNTIME)
+    @Documented
+    @interface List {
+        PastOrPresent[] value();
+    }
+}

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Pattern.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Pattern.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Pattern.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Pattern.java Mon Sep  4 21:01:48 2017
@@ -19,6 +19,7 @@ package javax.validation.constraints;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -27,6 +28,7 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
@@ -35,10 +37,11 @@ import static java.lang.annotation.Reten
  *
  * @version $Rev$ $Date$
  */
-@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 @Documented
 @Constraint(validatedBy = {})
+@Repeatable(Pattern.List.class)
 public @interface Pattern {
     
     String regexp();
@@ -78,11 +81,10 @@ public @interface Pattern {
         }
     }
 
-    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
     @Retention(RUNTIME)
     @Documented
     @interface List {
         Pattern[] value();
     }
 }
-

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Positive.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Positive.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Positive.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Positive.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.constraints;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * @since 2.0
+ */
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+@Retention(RUNTIME)
+@Documented
+@Constraint(validatedBy = {})
+@Repeatable(Positive.List.class)
+public @interface Positive {
+    String message() default "{javax.validation.constraints.Positive.message}";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+    @Retention(RUNTIME)
+    @Documented
+    @interface List {
+        Positive[] value();
+    }
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PositiveOrZero.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PositiveOrZero.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PositiveOrZero.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/PositiveOrZero.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.constraints;
+
+import javax.validation.Constraint;
+import javax.validation.Payload;
+import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import static java.lang.annotation.ElementType.ANNOTATION_TYPE;
+import static java.lang.annotation.ElementType.CONSTRUCTOR;
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+/**
+ * @since 2.0
+ */
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+@Retention(RUNTIME)
+@Documented
+@Constraint(validatedBy = {})
+@Repeatable(PositiveOrZero.List.class)
+public @interface PositiveOrZero {
+    String message() default "{javax.validation.constraints.PositiveOrZero.message}";
+
+    Class<?>[] groups() default {};
+
+    Class<? extends Payload>[] payload() default {};
+
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
+    @Retention(RUNTIME)
+    @Documented
+    @interface List {
+        PositiveOrZero[] value();
+    }
+}

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Size.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Size.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Size.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/constraints/Size.java Mon Sep  4 21:01:48 2017
@@ -19,6 +19,7 @@ package javax.validation.constraints;
 import javax.validation.Constraint;
 import javax.validation.Payload;
 import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -27,6 +28,7 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
+import static java.lang.annotation.ElementType.TYPE_USE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /**
@@ -36,10 +38,11 @@ import static java.lang.annotation.Reten
  *
  * @version $Rev$ $Date$
  */
-@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 @Documented
 @Constraint(validatedBy = {})
+@Repeatable(Size.List.class)
 public @interface Size {
     String message() default "{javax.validation.constraints.Size.message}";
 
@@ -51,11 +54,10 @@ public @interface Size {
 
     int max() default Integer.MAX_VALUE;
 
-    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
+    @Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER, TYPE_USE })
     @Retention(RUNTIME)
     @Documented
     @interface List {
         Size[] value();
     }
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableType.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableType.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableType.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableType.java Mon Sep  4 21:01:48 2017
@@ -20,4 +20,3 @@ package javax.validation.executable;
 public enum ExecutableType {
     IMPLICIT, NONE, CONSTRUCTORS, NON_GETTER_METHODS, GETTER_METHODS, ALL
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableValidator.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableValidator.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableValidator.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ExecutableValidator.java Mon Sep  4 21:01:48 2017
@@ -36,4 +36,3 @@ public interface ExecutableValidator {
                                                                    T createdObject,
                                                                    Class<?>... groups);
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ValidateOnExecution.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ValidateOnExecution.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ValidateOnExecution.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/executable/ValidateOnExecution.java Mon Sep  4 21:01:48 2017
@@ -25,10 +25,12 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.TYPE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
+import java.lang.annotation.Documented;
+
 /** @since 1.1 */
 @Target({ CONSTRUCTOR, METHOD, TYPE, PACKAGE })
 @Retention(RUNTIME)
+@Documented
 public @interface ValidateOnExecution {
     ExecutableType[] type() default { ExecutableType.IMPLICIT };
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/ConvertGroup.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/ConvertGroup.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/ConvertGroup.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/ConvertGroup.java Mon Sep  4 21:01:48 2017
@@ -17,6 +17,7 @@
 package javax.validation.groups;
 
 import java.lang.annotation.Documented;
+import java.lang.annotation.Repeatable;
 import java.lang.annotation.Retention;
 import java.lang.annotation.Target;
 
@@ -24,18 +25,19 @@ import static java.lang.annotation.Eleme
 import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
-import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.ElementType.TYPE_USE;
 import static java.lang.annotation.RetentionPolicy.RUNTIME;
 
 /** @since 1.1 */
-@Target({ TYPE, METHOD, FIELD, CONSTRUCTOR, PARAMETER })
+@Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER, TYPE_USE })
 @Retention(RUNTIME)
 @Documented
+@Repeatable(ConvertGroup.List.class)
 public @interface ConvertGroup {
-    Class<?> from();
+    Class<?> from() default Default.class;
     Class<?> to();
 
-    @Target({ TYPE, METHOD, FIELD, CONSTRUCTOR, PARAMETER })
+    @Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER, TYPE_USE })
     @Retention(RUNTIME)
     @Documented
     @interface List {

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/Default.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/Default.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/Default.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/groups/Default.java Mon Sep  4 21:01:48 2017
@@ -23,4 +23,3 @@ package javax.validation.groups;
  */
 public interface Default {
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/BeanDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/BeanDescriptor.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/BeanDescriptor.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/BeanDescriptor.java Mon Sep  4 21:01:48 2017
@@ -33,4 +33,3 @@ public interface BeanDescriptor extends
     ConstructorDescriptor getConstraintsForConstructor(Class<?>... parameterTypes);
     Set<ConstructorDescriptor> getConstrainedConstructors();
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ConstraintDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ConstraintDescriptor.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ConstraintDescriptor.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ConstraintDescriptor.java Mon Sep  4 21:01:48 2017
@@ -43,9 +43,15 @@ public interface ConstraintDescriptor<T
 
     boolean isReportAsSingleViolation();
 
-    // @since 1.1
-
+    /** @since 1.1 */
     String getMessageTemplate();
+
+    /** @since 1.1 */
     ConstraintTarget getValidationAppliesTo();
-}
 
+    /** @since 2.0 */
+    ValidateUnwrappedValue getValueUnwrapping();
+
+    /** @since 2.0 */
+    <U> U unwrap(Class<U> type);
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerDescriptor.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerDescriptor.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerDescriptor.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.metadata;
+
+import java.util.Set;
+
+/**
+ * @since 2.0
+ */
+public interface ContainerDescriptor {
+
+    Set<ContainerElementTypeDescriptor> getConstrainedContainerElementTypes();
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerElementTypeDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerElementTypeDescriptor.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerElementTypeDescriptor.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ContainerElementTypeDescriptor.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,27 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.metadata;
+
+/**
+ * @since 2.0
+ */
+public interface ContainerElementTypeDescriptor extends ElementDescriptor, CascadableDescriptor, ContainerDescriptor {
+
+    Class<?> getContainerClass();
+
+    Integer getTypeArgumentIndex();
+}

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ExecutableDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ExecutableDescriptor.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ExecutableDescriptor.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ExecutableDescriptor.java Mon Sep  4 21:01:48 2017
@@ -27,4 +27,3 @@ public interface ExecutableDescriptor ex
     boolean hasConstrainedParameters();
     boolean hasConstrainedReturnValue();
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ParameterDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ParameterDescriptor.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ParameterDescriptor.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ParameterDescriptor.java Mon Sep  4 21:01:48 2017
@@ -17,7 +17,7 @@
 package javax.validation.metadata;
 
 /** @since 1.1 */
-public interface ParameterDescriptor extends ElementDescriptor, CascadableDescriptor {
+public interface ParameterDescriptor extends ElementDescriptor, CascadableDescriptor, ContainerDescriptor {
     int getIndex();
     String getName();
 }

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/PropertyDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/PropertyDescriptor.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/PropertyDescriptor.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/PropertyDescriptor.java Mon Sep  4 21:01:48 2017
@@ -19,7 +19,6 @@ package javax.validation.metadata;
 /**
  * @version $Rev$ $Date$
  */
-public interface PropertyDescriptor extends ElementDescriptor, CascadableDescriptor {
+public interface PropertyDescriptor extends ElementDescriptor, CascadableDescriptor, ContainerDescriptor {
     String getPropertyName();
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ReturnValueDescriptor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ReturnValueDescriptor.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ReturnValueDescriptor.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ReturnValueDescriptor.java Mon Sep  4 21:01:48 2017
@@ -17,5 +17,5 @@
 package javax.validation.metadata;
 
 /** @since 1.1 */
-public interface ReturnValueDescriptor extends ElementDescriptor, CascadableDescriptor {
+public interface ReturnValueDescriptor extends ElementDescriptor, CascadableDescriptor, ContainerDescriptor {
 }

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/Scope.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/Scope.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/Scope.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/Scope.java Mon Sep  4 21:01:48 2017
@@ -23,4 +23,3 @@ public enum Scope {
 	LOCAL_ELEMENT,
 	HIERARCHY
 }
-

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ValidateUnwrappedValue.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ValidateUnwrappedValue.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ValidateUnwrappedValue.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/metadata/ValidateUnwrappedValue.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.metadata;
+
+/**
+ * @since 2.0
+ */
+public enum ValidateUnwrappedValue {
+    DEFAULT, UNWRAP, SKIP;
+}

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/BootstrapState.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/BootstrapState.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/BootstrapState.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/BootstrapState.java Mon Sep  4 21:01:48 2017
@@ -26,4 +26,3 @@ public interface BootstrapState {
 
     ValidationProviderResolver getDefaultValidationProviderResolver();
 }
-

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ConfigurationState.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ConfigurationState.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ConfigurationState.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ConfigurationState.java Mon Sep  4 21:01:48 2017
@@ -16,10 +16,13 @@
  */
 package javax.validation.spi;
 
+import javax.validation.ClockProvider;
 import javax.validation.ConstraintValidatorFactory;
 import javax.validation.MessageInterpolator;
 import javax.validation.ParameterNameProvider;
 import javax.validation.TraversableResolver;
+import javax.validation.valueextraction.ValueExtractor;
+
 import java.io.InputStream;
 import java.util.Map;
 import java.util.Set;
@@ -43,5 +46,10 @@ public interface ConfigurationState {
 
     /** @since 1.1 */
     ParameterNameProvider getParameterNameProvider();
-}
 
+    /** @since 2.0 */
+    Set<ValueExtractor<?>> getValueExtractors();
+
+    /** @since 2.0 */
+    ClockProvider getClockProvider();
+}

Modified: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ValidationProvider.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ValidationProvider.java?rev=1807299&r1=1807298&r2=1807299&view=diff
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ValidationProvider.java (original)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/spi/ValidationProvider.java Mon Sep  4 21:01:48 2017
@@ -30,4 +30,3 @@ public interface ValidationProvider<T ex
 
     ValidatorFactory buildValidatorFactory(ConfigurationState configurationState);
 }
-

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ExtractedValue.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ExtractedValue.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ExtractedValue.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ExtractedValue.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.valueextraction;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @since 2.0
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE_USE)
+@Documented
+public @interface ExtractedValue {
+
+    Class<?> type() default void.class;
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/UnwrapByDefault.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/UnwrapByDefault.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/UnwrapByDefault.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/UnwrapByDefault.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.valueextraction;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * @since 2.0
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.TYPE)
+@Documented
+public @interface UnwrapByDefault {
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/Unwrapping.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/Unwrapping.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/Unwrapping.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/Unwrapping.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.valueextraction;
+
+import javax.validation.Payload;
+
+/**
+ * @since 2.0
+ */
+public interface Unwrapping {
+
+    interface Unwrap extends Payload {
+    }
+
+    interface Skip extends Payload {
+    }
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractor.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractor.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractor.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractor.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.valueextraction;
+
+/**
+ * @since 2.0
+ */
+public interface ValueExtractor<T> {
+    void extractValues(T originalValue, ValueReceiver receiver);
+
+    interface ValueReceiver {
+        void value(String nodeName, Object object);
+
+        void iterableValue(String nodeName, Object object);
+
+        void indexedValue(String nodeName, int i, Object object);
+
+        void keyedValue(String nodeName, Object key, Object object);
+    }
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDeclarationException.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDeclarationException.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDeclarationException.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDeclarationException.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.valueextraction;
+
+import javax.validation.ValidationException;
+
+/**
+ * @since 2.0
+ */
+@SuppressWarnings("serial")
+public class ValueExtractorDeclarationException extends ValidationException {
+
+    public ValueExtractorDeclarationException() {
+        super();
+    }
+
+    public ValueExtractorDeclarationException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ValueExtractorDeclarationException(String message) {
+        super(message);
+    }
+
+    public ValueExtractorDeclarationException(Throwable cause) {
+        super(cause);
+    }
+
+}

Added: geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDefinitionException.java
URL: http://svn.apache.org/viewvc/geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDefinitionException.java?rev=1807299&view=auto
==============================================================================
--- geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDefinitionException.java (added)
+++ geronimo/specs/trunk/geronimo-validation_2.0_spec/src/main/java/javax/validation/valueextraction/ValueExtractorDefinitionException.java Mon Sep  4 21:01:48 2017
@@ -0,0 +1,43 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package javax.validation.valueextraction;
+
+import javax.validation.ValidationException;
+
+/**
+ * @since 2.0
+ */
+@SuppressWarnings("serial")
+public class ValueExtractorDefinitionException extends ValidationException {
+
+    public ValueExtractorDefinitionException() {
+        super();
+    }
+
+    public ValueExtractorDefinitionException(String message, Throwable cause) {
+        super(message, cause);
+    }
+
+    public ValueExtractorDefinitionException(String message) {
+        super(message);
+    }
+
+    public ValueExtractorDefinitionException(Throwable cause) {
+        super(cause);
+    }
+
+}