diff -r d690011399a1 -r d70d50ec27bb langtools/test/tools/javac/diags/Example.java --- a/langtools/test/tools/javac/diags/Example.java Tue May 17 10:13:55 2016 -0700 +++ b/langtools/test/tools/javac/diags/Example.java Wed May 18 11:38:20 2016 +0530 @@ -63,6 +63,8 @@ procFiles = new ArrayList(); supportFiles = new ArrayList(); srcPathFiles = new ArrayList(); + moduleSourcePathFiles = new ArrayList(); + additionalFiles = new ArrayList(); findFiles(file, srcFiles); for (File f: srcFiles) { @@ -81,13 +83,23 @@ else if (files == srcFiles && c.getName().equals("sourcepath")) { srcPathDir = c; findFiles(c, srcPathFiles); + } else if (files == srcFiles && c.getName().equals("modulesourcepath")) { + moduleSourcePathDir = c; + findFiles(c, moduleSourcePathFiles); + } else if (files == srcFiles && c.getName().equals("additional")) { + additionalFilesDir = c; + findFiles(c, additionalFiles); } else if (files == srcFiles && c.getName().equals("support")) findFiles(c, supportFiles); else findFiles(c, files); } - } else if (f.isFile() && f.getName().endsWith(".java")) { - files.add(f); + } else if (f.isFile()) { + if (f.getName().endsWith(".java")) { + files.add(f); + } else if (f.getName().equals("modulesourcepath")) { + moduleSourcePathDir = f; + } } } @@ -228,14 +240,27 @@ } } + List files = srcFiles; + if (srcPathDir != null) { opts.add("-sourcepath"); opts.add(srcPathDir.getPath()); } + if (moduleSourcePathDir != null) { + opts.add("-modulesourcepath"); + opts.add(moduleSourcePathDir.getPath()); + files = moduleSourcePathFiles; + } + + if (additionalFiles.size() > 0) { + List sOpts = Arrays.asList("-d", classesDir.getPath()); + new Jsr199Compiler(verbose).run(null, null, false, sOpts, additionalFiles); + } + try { Compiler c = Compiler.getCompiler(runOpts, verbose); - c.run(out, keys, raw, opts, srcFiles); + c.run(out, keys, raw, opts, files); } catch (IllegalArgumentException e) { if (out != null) { out.println("Invalid value for run tag: " + runOpts); @@ -298,7 +323,11 @@ List srcFiles; List procFiles; File srcPathDir; + File moduleSourcePathDir; + File additionalFilesDir; List srcPathFiles; + List moduleSourcePathFiles; + List additionalFiles; List supportFiles; File infoFile; private List runOpts;