langtools/test/tools/javac/diags/Example.java
changeset 38519 d70d50ec27bb
parent 36526 3b41f1c69604
child 40308 274367a99f98
equal deleted inserted replaced
38518:d690011399a1 38519:d70d50ec27bb
    61         declaredKeys = new TreeSet<String>();
    61         declaredKeys = new TreeSet<String>();
    62         srcFiles = new ArrayList<File>();
    62         srcFiles = new ArrayList<File>();
    63         procFiles = new ArrayList<File>();
    63         procFiles = new ArrayList<File>();
    64         supportFiles = new ArrayList<File>();
    64         supportFiles = new ArrayList<File>();
    65         srcPathFiles = new ArrayList<File>();
    65         srcPathFiles = new ArrayList<File>();
       
    66         moduleSourcePathFiles = new ArrayList<File>();
       
    67         additionalFiles = new ArrayList<File>();
    66 
    68 
    67         findFiles(file, srcFiles);
    69         findFiles(file, srcFiles);
    68         for (File f: srcFiles) {
    70         for (File f: srcFiles) {
    69             parse(f);
    71             parse(f);
    70         }
    72         }
    79                 if (files == srcFiles && c.getName().equals("processors"))
    81                 if (files == srcFiles && c.getName().equals("processors"))
    80                     findFiles(c, procFiles);
    82                     findFiles(c, procFiles);
    81                 else if (files == srcFiles && c.getName().equals("sourcepath")) {
    83                 else if (files == srcFiles && c.getName().equals("sourcepath")) {
    82                     srcPathDir = c;
    84                     srcPathDir = c;
    83                     findFiles(c, srcPathFiles);
    85                     findFiles(c, srcPathFiles);
       
    86                 } else if (files == srcFiles && c.getName().equals("modulesourcepath")) {
       
    87                     moduleSourcePathDir = c;
       
    88                     findFiles(c, moduleSourcePathFiles);
       
    89                 } else if (files == srcFiles && c.getName().equals("additional")) {
       
    90                     additionalFilesDir = c;
       
    91                     findFiles(c, additionalFiles);
    84                 } else if (files == srcFiles && c.getName().equals("support"))
    92                 } else if (files == srcFiles && c.getName().equals("support"))
    85                     findFiles(c, supportFiles);
    93                     findFiles(c, supportFiles);
    86                 else
    94                 else
    87                     findFiles(c, files);
    95                     findFiles(c, files);
    88             }
    96             }
    89         } else if (f.isFile() && f.getName().endsWith(".java")) {
    97         } else if (f.isFile()) {
    90             files.add(f);
    98                 if (f.getName().endsWith(".java")) {
       
    99                     files.add(f);
       
   100                 } else if (f.getName().equals("modulesourcepath")) {
       
   101                     moduleSourcePathDir = f;
       
   102                 }
    91         }
   103         }
    92     }
   104     }
    93 
   105 
    94     private void parse(File f) {
   106     private void parse(File f) {
    95         Pattern keyPat = Pattern.compile(" *// *key: *([^ ]+) *");
   107         Pattern keyPat = Pattern.compile(" *// *key: *([^ ]+) *");
   226                 opts.add("-classpath");
   238                 opts.add("-classpath");
   227                 opts.add(System.getProperty("test.classes"));
   239                 opts.add(System.getProperty("test.classes"));
   228             }
   240             }
   229         }
   241         }
   230 
   242 
       
   243         List<File> files = srcFiles;
       
   244 
   231         if (srcPathDir != null) {
   245         if (srcPathDir != null) {
   232             opts.add("-sourcepath");
   246             opts.add("-sourcepath");
   233             opts.add(srcPathDir.getPath());
   247             opts.add(srcPathDir.getPath());
   234         }
   248         }
   235 
   249 
       
   250         if (moduleSourcePathDir != null) {
       
   251             opts.add("-modulesourcepath");
       
   252             opts.add(moduleSourcePathDir.getPath());
       
   253             files = moduleSourcePathFiles;
       
   254         }
       
   255 
       
   256         if (additionalFiles.size() > 0) {
       
   257             List<String> sOpts = Arrays.asList("-d", classesDir.getPath());
       
   258             new Jsr199Compiler(verbose).run(null, null, false, sOpts, additionalFiles);
       
   259         }
       
   260 
   236         try {
   261         try {
   237             Compiler c = Compiler.getCompiler(runOpts, verbose);
   262             Compiler c = Compiler.getCompiler(runOpts, verbose);
   238             c.run(out, keys, raw, opts, srcFiles);
   263             c.run(out, keys, raw, opts, files);
   239         } catch (IllegalArgumentException e) {
   264         } catch (IllegalArgumentException e) {
   240             if (out != null) {
   265             if (out != null) {
   241                 out.println("Invalid value for run tag: " + runOpts);
   266                 out.println("Invalid value for run tag: " + runOpts);
   242             }
   267             }
   243         }
   268         }
   296 
   321 
   297     File file;
   322     File file;
   298     List<File> srcFiles;
   323     List<File> srcFiles;
   299     List<File> procFiles;
   324     List<File> procFiles;
   300     File srcPathDir;
   325     File srcPathDir;
       
   326     File moduleSourcePathDir;
       
   327     File additionalFilesDir;
   301     List<File> srcPathFiles;
   328     List<File> srcPathFiles;
       
   329     List<File> moduleSourcePathFiles;
       
   330     List<File> additionalFiles;
   302     List<File> supportFiles;
   331     List<File> supportFiles;
   303     File infoFile;
   332     File infoFile;
   304     private List<String> runOpts;
   333     private List<String> runOpts;
   305     private List<String> options;
   334     private List<String> options;
   306     private Set<String> actualKeys;
   335     private Set<String> actualKeys;