Chromium Code Reviews| Index: third_party/errorprone/src/org/chromium/errorprone/ChromiumErrorProneCompiler.java |
| diff --git a/third_party/errorprone/src/org/chromium/errorprone/ChromiumErrorProneCompiler.java b/third_party/errorprone/src/org/chromium/errorprone/ChromiumErrorProneCompiler.java |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..706c6412138c65b344d227ee84685c0b8ff8c48f |
| --- /dev/null |
| +++ b/third_party/errorprone/src/org/chromium/errorprone/ChromiumErrorProneCompiler.java |
| @@ -0,0 +1,57 @@ |
| +// Copyright 2014 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +package org.chromium.errorprone; |
| + |
| +import com.google.errorprone.BugPattern; |
| +import com.google.errorprone.ErrorProneOptions; |
| +import com.google.errorprone.ErrorProneScanner; |
| +import com.google.errorprone.ErrorReportingJavaCompiler; |
| +import com.google.errorprone.JDKCompatible; |
| +import com.google.errorprone.Scanner; |
| +import com.google.errorprone.bugpatterns.BugChecker; |
| + |
| +import com.sun.tools.javac.file.JavacFileManager; |
| +import com.sun.tools.javac.main.Main; |
| +import com.sun.tools.javac.util.Context; |
| +import com.sun.tools.javac.util.List; |
| + |
| +import java.io.PrintWriter; |
| +import java.util.HashSet; |
| +import java.util.Set; |
| + |
| +import javax.tools.JavaFileObject; |
| + |
| +/** |
| + * Configures (and compiles with) the error-prone java compiler. |
| + */ |
| +public class ChromiumErrorProneCompiler { |
| + |
| + public static void main(String[] args) { |
| + System.exit(compile(args)); |
| + } |
| + |
| + private static int compile(String[] args) { |
|
jbudorick
2015/05/07 18:49:14
Why are we creating our own wrapper executable? Is
|
| + PrintWriter printWriter = new PrintWriter(System.err, true); |
| + Main main = new Main("javac (chromium-error-prone)", printWriter); |
| + Context context = new Context(); |
| + JavacFileManager.preRegister(context); |
| + |
| + ErrorProneOptions epOptions = ErrorProneOptions.processArgs(args); |
| + final Set<String> disabledChecks = new HashSet<String>(epOptions.getDisabledChecks()); |
| + |
| + Scanner scannerInContext = new ErrorProneScanner(new ErrorProneScanner.EnabledPredicate() { |
| + @Override |
| + public boolean isEnabled(Class<? extends BugChecker> check, BugPattern annotation) { |
| + return !disabledChecks.contains(check.getCanonicalName()); |
| + } |
| + }); |
| + context.put(Scanner.class, scannerInContext); |
| + |
| + ErrorReportingJavaCompiler.preRegister(context); |
| + return JDKCompatible.runCompile( |
| + main, epOptions.getRemainingArgs(), context, List.<JavaFileObject>nil(), null); |
| + } |
| + |
| +} |