test/tools/javac/processing/6634138/T6634138.java

Mon, 15 Feb 2010 18:20:57 -0800

author
darcy
date
Mon, 15 Feb 2010 18:20:57 -0800
changeset 494
af18e3956985
child 554
9d9f26857129
permissions
-rw-r--r--

6634138: Source generated in last round not compiled
Reviewed-by: jjg

darcy@494 1 /*
darcy@494 2 * Copyright 2010 Sun Microsystems, Inc. All Rights Reserved.
darcy@494 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
darcy@494 4 *
darcy@494 5 * This code is free software; you can redistribute it and/or modify it
darcy@494 6 * under the terms of the GNU General Public License version 2 only, as
darcy@494 7 * published by the Free Software Foundation.
darcy@494 8 *
darcy@494 9 * This code is distributed in the hope that it will be useful, but WITHOUT
darcy@494 10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
darcy@494 11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
darcy@494 12 * version 2 for more details (a copy is included in the LICENSE file that
darcy@494 13 * accompanied this code).
darcy@494 14 *
darcy@494 15 * You should have received a copy of the GNU General Public License version
darcy@494 16 * 2 along with this work; if not, write to the Free Software Foundation,
darcy@494 17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
darcy@494 18 *
darcy@494 19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
darcy@494 20 * CA 95054 USA or visit www.sun.com if you need additional information or
darcy@494 21 * have any questions.
darcy@494 22 */
darcy@494 23
darcy@494 24 /*
darcy@494 25 * @test
darcy@494 26 * @bug 6634138
darcy@494 27 * @author Joseph D. Darcy
darcy@494 28 * @summary Verify source files output after processing is over are compiled
darcy@494 29 * @compile T6634138.java
darcy@494 30 * @compile -processor T6634138 Dummy.java
darcy@494 31 * @run main ExerciseDependency
darcy@494 32 */
darcy@494 33
darcy@494 34 import java.lang.annotation.Annotation;
darcy@494 35 import java.io.*;
darcy@494 36 import java.util.Collections;
darcy@494 37 import java.util.Set;
darcy@494 38 import java.util.HashSet;
darcy@494 39 import java.util.List;
darcy@494 40 import java.util.ArrayList;
darcy@494 41 import java.util.Arrays;
darcy@494 42 import javax.annotation.processing.*;
darcy@494 43 import javax.lang.model.SourceVersion;
darcy@494 44 import javax.lang.model.element.*;
darcy@494 45 import javax.lang.model.util.*;
darcy@494 46
darcy@494 47 @SupportedAnnotationTypes("*")
darcy@494 48 public class T6634138 extends AbstractProcessor {
darcy@494 49 private Filer filer;
darcy@494 50
darcy@494 51 public boolean process(Set<? extends TypeElement> annotations,
darcy@494 52 RoundEnvironment roundEnvironment) {
darcy@494 53 // Write out files *after* processing is over.
darcy@494 54 if (roundEnvironment.processingOver()) {
darcy@494 55 System.out.println("Writing out source files.");
darcy@494 56 try {
darcy@494 57 PrintWriter pw = new PrintWriter(filer.createSourceFile("foo.WrittenAfterProcessing").openWriter());
darcy@494 58 try {
darcy@494 59 pw.println("package foo;");
darcy@494 60 pw.println("public class WrittenAfterProcessing {");
darcy@494 61 pw.println(" public WrittenAfterProcessing() {super();}");
darcy@494 62 pw.println("}");
darcy@494 63 } finally {
darcy@494 64 pw.close();
darcy@494 65 }
darcy@494 66
darcy@494 67 pw = new PrintWriter(filer.createSourceFile("foo.package-info").openWriter());
darcy@494 68 try {
darcy@494 69 pw.println("@Deprecated");
darcy@494 70 pw.println("package foo;");
darcy@494 71 } finally {
darcy@494 72 pw.close();
darcy@494 73 }
darcy@494 74 } catch(IOException io) {
darcy@494 75 throw new RuntimeException(io);
darcy@494 76 }
darcy@494 77 }
darcy@494 78 return true;
darcy@494 79 }
darcy@494 80
darcy@494 81 @Override
darcy@494 82 public SourceVersion getSupportedSourceVersion() {
darcy@494 83 return SourceVersion.latest();
darcy@494 84 }
darcy@494 85
darcy@494 86 public void init(ProcessingEnvironment processingEnv) {
darcy@494 87 super.init(processingEnv);
darcy@494 88 filer = processingEnv.getFiler();
darcy@494 89 }
darcy@494 90 }
darcy@494 91
darcy@494 92
darcy@494 93

mercurial