langtools/test/tools/javac/modules/AnnotationProcessing.java
changeset 43037 3e1520a857fa
parent 42824 89b14017e8d6
child 43149 047a57b0839a
equal deleted inserted replaced
43036:265376df8b48 43037:3e1520a857fa
    21  * questions.
    21  * questions.
    22  */
    22  */
    23 
    23 
    24 /**
    24 /**
    25  * @test
    25  * @test
    26  * @bug 8133884 8162711 8133896
    26  * @bug 8133884 8162711 8133896 8172158
    27  * @summary Verify that annotation processing works.
    27  * @summary Verify that annotation processing works.
    28  * @library /tools/lib
    28  * @library /tools/lib
    29  * @modules
    29  * @modules
    30  *      jdk.compiler/com.sun.tools.javac.api
    30  *      jdk.compiler/com.sun.tools.javac.api
    31  *      jdk.compiler/com.sun.tools.javac.main
    31  *      jdk.compiler/com.sun.tools.javac.main
   977         if (!expected.equals(log)) {
   977         if (!expected.equals(log)) {
   978             throw new AssertionError("Output does not match; output: " + log);
   978             throw new AssertionError("Output does not match; output: " + log);
   979         }
   979         }
   980     }
   980     }
   981 
   981 
       
   982     @Test
       
   983     public void testDisambiguateAnnotationsNoModules(Path base) throws Exception {
       
   984         Path classes = base.resolve("classes");
       
   985 
       
   986         Files.createDirectories(classes);
       
   987 
       
   988         Path src = base.resolve("src");
       
   989 
       
   990         tb.writeJavaFiles(src,
       
   991                           "package api; public @interface A {}",
       
   992                           "package api; public @interface B {}",
       
   993                           "package impl; import api.*; @A @B public class T {}");
       
   994 
       
   995         List<String> log = new JavacTask(tb)
       
   996             .options("-processor", SelectAnnotationATestAP.class.getName() + "," + SelectAnnotationBTestAP.class.getName(),
       
   997                      "-source", "8", "-target", "8")
       
   998             .outdir(classes)
       
   999             .files(findJavaFiles(src))
       
  1000             .run()
       
  1001             .writeAll()
       
  1002             .getOutputLines(OutputKind.STDERR);
       
  1003 
       
  1004         List<String> expected = Arrays.asList("SelectAnnotationATestAP",
       
  1005                                               "SelectAnnotationBTestAP",
       
  1006                                               "SelectAnnotationATestAP",
       
  1007                                               "SelectAnnotationBTestAP");
       
  1008 
       
  1009         if (!expected.equals(log)) {
       
  1010             throw new AssertionError("Output does not match; output: " + log);
       
  1011         }
       
  1012     }
       
  1013 
   982     @SupportedAnnotationTypes("m2x/api.A")
  1014     @SupportedAnnotationTypes("m2x/api.A")
   983     public static final class SelectAnnotationATestAP extends AbstractProcessor {
  1015     public static final class SelectAnnotationATestAP extends AbstractProcessor {
   984 
  1016 
   985         @Override
  1017         @Override
   986         public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
  1018         public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {