jdk/test/java/lang/reflect/Generics/Probe.java
changeset 3718 ca4f0e5fc0ac
parent 1934 94b646161f34
child 5506 202f599c92aa
equal deleted inserted replaced
3717:c2ea049a4442 3718:ca4f0e5fc0ac
    21  * have any questions.
    21  * have any questions.
    22  */
    22  */
    23 
    23 
    24 /*
    24 /*
    25  * @test
    25  * @test
    26  * @bug 5003916 6704655
    26  * @bug 5003916 6704655 6873951
    27  * @summary Testing parsing of signatures attributes of nested classes
    27  * @summary Testing parsing of signatures attributes of nested classes
    28  * @author Joseph D. Darcy
    28  * @author Joseph D. Darcy
    29  * @compile -source 1.5 Probe.java
       
    30  * @run main Probe
       
    31  */
    29  */
    32 
    30 
    33 import java.lang.reflect.*;
    31 import java.lang.reflect.*;
    34 import java.lang.annotation.*;
    32 import java.lang.annotation.*;
    35 import java.util.*;
    33 import java.util.*;
    36 import static java.util.Arrays.*;
    34 import static java.util.Arrays.*;
    37 
    35 
    38 @Classes(value={
    36 @Classes({"java.util.concurrent.FutureTask",
    39         "java.util.concurrent.FutureTask",
    37           "java.util.concurrent.ConcurrentHashMap$EntryIterator",
    40         "java.util.concurrent.ConcurrentHashMap$EntryIterator",
    38           "java.util.concurrent.ConcurrentHashMap$KeyIterator",
    41         "java.util.concurrent.ConcurrentHashMap$KeyIterator",
    39           "java.util.concurrent.ConcurrentHashMap$ValueIterator",
    42         "java.util.concurrent.ConcurrentHashMap$ValueIterator",
    40           "java.util.AbstractList$ListItr",
    43         "java.util.AbstractList$ListItr",
    41           "java.util.EnumMap$EntryIterator",
    44         "java.util.EnumMap$EntryIterator",
    42           "java.util.EnumMap$KeyIterator",
    45         "java.util.EnumMap$KeyIterator",
    43           "java.util.EnumMap$ValueIterator",
    46         "java.util.EnumMap$ValueIterator",
    44           "java.util.IdentityHashMap$EntryIterator",
    47         "java.util.IdentityHashMap$EntryIterator",
    45           "java.util.IdentityHashMap$KeyIterator",
    48         "java.util.IdentityHashMap$KeyIterator",
    46           "java.util.IdentityHashMap$ValueIterator",
    49         "java.util.IdentityHashMap$ValueIterator",
    47           "java.util.WeakHashMap$EntryIterator",
    50         "java.util.WeakHashMap$EntryIterator",
    48           "java.util.WeakHashMap$KeyIterator",
    51         "java.util.WeakHashMap$KeyIterator",
    49           "java.util.WeakHashMap$ValueIterator",
    52         "java.util.WeakHashMap$ValueIterator",
    50           "java.util.TreeMap$EntryIterator",
    53         "java.util.TreeMap$EntryIterator",
    51           "java.util.TreeMap$KeyIterator",
    54         "java.util.TreeMap$KeyIterator",
    52           "java.util.TreeMap$ValueIterator",
    55         "java.util.TreeMap$ValueIterator",
    53           "java.util.HashMap$EntryIterator",
    56         "java.util.HashMap$EntryIterator",
    54           "java.util.HashMap$KeyIterator",
    57         "java.util.HashMap$KeyIterator",
    55           "java.util.HashMap$ValueIterator",
    58         "java.util.HashMap$ValueIterator",
    56           "java.util.LinkedHashMap$EntryIterator",
    59         "java.util.LinkedHashMap$EntryIterator",
    57           "java.util.LinkedHashMap$KeyIterator",
    60         "java.util.LinkedHashMap$KeyIterator",
    58           "java.util.LinkedHashMap$ValueIterator"})
    61         "java.util.LinkedHashMap$ValueIterator"
       
    62         },
       
    63         sunClasses={
       
    64         "javax.crypto.SunJCE_c",
       
    65         "javax.crypto.SunJCE_e",
       
    66         "javax.crypto.SunJCE_f",
       
    67         "javax.crypto.SunJCE_j",
       
    68         "javax.crypto.SunJCE_k",
       
    69         "javax.crypto.SunJCE_l"
       
    70         })
       
    71 public class Probe {
    59 public class Probe {
    72     public static void main (String[] args) throws Throwable {
    60     public static void main (String... args) throws Throwable {
    73         Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class);
    61         Classes classesAnnotation = (Probe.class).getAnnotation(Classes.class);
    74         List<String> names =
    62         List<String> names =
    75             new ArrayList<String>(asList(classesAnnotation.value()));
    63             new ArrayList<String>(asList(classesAnnotation.value()));
    76 
       
    77         if (System.getProperty("java.runtime.name").startsWith("Java(TM)")) {
       
    78             // Sun production JDK; test crypto classes too
       
    79             for(String name: classesAnnotation.sunClasses())
       
    80                 names.add(name);
       
    81         }
       
    82 
    64 
    83         int errs = 0;
    65         int errs = 0;
    84         for(String name: names) {
    66         for(String name: names) {
    85             System.out.println("\nCLASS " + name);
    67             System.out.println("\nCLASS " + name);
    86             Class c = Class.forName(name, false, null);
    68             Class c = Class.forName(name, false, null);
   150 }
   132 }
   151 
   133 
   152 @Retention(RetentionPolicy.RUNTIME)
   134 @Retention(RetentionPolicy.RUNTIME)
   153 @interface Classes {
   135 @interface Classes {
   154     String [] value(); // list of classes to probe
   136     String [] value(); // list of classes to probe
   155     String [] sunClasses(); // list of Sun-production JDK specific classes to probe
       
   156 }
   137 }