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; |