# HG changeset patch # User Jaroslav Tulach # Date 1485228613 -3600 # Node ID cdb47e64458192a7fc5032cde285ed23b538b47a # Parent a3b670224d5d2214e80bd56ab094d818423283e7# Parent 3ff7a893a7ced77be1bfde3ef67be0877f79932b Merging in usage of modern Java compiler diff -r a3b670224d5d -r cdb47e644581 .hgignore --- a/.hgignore Tue Jan 17 21:19:45 2017 +0100 +++ b/.hgignore Tue Jan 24 04:30:13 2017 +0100 @@ -4,3 +4,5 @@ \.rej$ \.conflict\~$ target +\.brw$ +\.XelfiOptions diff -r a3b670224d5d -r cdb47e644581 src/main/java/xelfi/compiler/XelfiCompilerMain.java --- a/src/main/java/xelfi/compiler/XelfiCompilerMain.java Tue Jan 17 21:19:45 2017 +0100 +++ b/src/main/java/xelfi/compiler/XelfiCompilerMain.java Tue Jan 24 04:30:13 2017 +0100 @@ -6,6 +6,10 @@ package xelfi.compiler; import java.io.*; +import java.util.Arrays; +import javax.tools.JavaCompiler; +import javax.tools.StandardJavaFileManager; +import javax.tools.ToolProvider; class XelfiCompilerMain extends Object implements MainCompiler @@ -34,7 +38,17 @@ args[0] = file.toString(); output("Compiling: " + args[0]); } -// compile(args); + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + StandardJavaFileManager fm = compiler.getStandardFileManager(null, null, null); + try { + compiler.getTask(new OutputStreamWriter(out), fm, null, Arrays.asList(args).subList(0, args.length - 1), null, fm.getJavaFileObjects(args[args.length - 1])).call(); + } finally { + try { + fm.close(); + } catch (IOException ex) { + ex.printStackTrace(); + } + } output("\n"); }