From dd6cb26e5eeb11b359aca50dec44864506c755ea Mon Sep 17 00:00:00 2001 From: Eugene Zhuravlev Date: Thu, 13 Dec 2018 14:40:34 +0100 Subject: [PATCH] compilingTool to declare if "javac tree API" is supported --- .../jps/builders/impl/java/JavacCompilerTool.java | 8 ++++++-- .../jetbrains/jps/builders/java/JavaCompilingTool.java | 4 ++++ .../ast/AbstractRefCollectorCompilerToolExtension.java | 4 ++-- .../jps/builders/impl/java/EclipseCompilerTool.java | 8 ++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/jps/jps-builders-6/src/org/jetbrains/jps/builders/impl/java/JavacCompilerTool.java b/jps/jps-builders-6/src/org/jetbrains/jps/builders/impl/java/JavacCompilerTool.java index 730eba9f9405..bf785a881277 100644 --- a/jps/jps-builders-6/src/org/jetbrains/jps/builders/impl/java/JavacCompilerTool.java +++ b/jps/jps-builders-6/src/org/jetbrains/jps/builders/impl/java/JavacCompilerTool.java @@ -21,8 +21,7 @@ import org.jetbrains.jps.builders.java.CannotCreateJavaCompilerException; import org.jetbrains.jps.builders.java.JavaCompilingTool; import org.jetbrains.jps.javac.JavacMain; -import javax.tools.JavaCompiler; -import javax.tools.ToolProvider; +import javax.tools.*; import java.io.File; import java.io.PrintWriter; import java.io.StringWriter; @@ -49,6 +48,11 @@ public class JavacCompilerTool extends JavaCompilingTool { return ALTERNATIVE_ID; } + @Override + public boolean isCompilerTreeAPISupported() { + return true; + } + @NotNull @Override public String getDescription() { diff --git a/jps/jps-builders-6/src/org/jetbrains/jps/builders/java/JavaCompilingTool.java b/jps/jps-builders-6/src/org/jetbrains/jps/builders/java/JavaCompilingTool.java index a5d684bd7a8b..4a28dc8e3a42 100644 --- a/jps/jps-builders-6/src/org/jetbrains/jps/builders/java/JavaCompilingTool.java +++ b/jps/jps-builders-6/src/org/jetbrains/jps/builders/java/JavaCompilingTool.java @@ -36,6 +36,10 @@ public abstract class JavaCompilingTool { return null; } + public boolean isCompilerTreeAPISupported() { + return false; + } + @NotNull public abstract String getDescription(); diff --git a/jps/jps-builders-6/src/org/jetbrains/jps/javac/ast/AbstractRefCollectorCompilerToolExtension.java b/jps/jps-builders-6/src/org/jetbrains/jps/javac/ast/AbstractRefCollectorCompilerToolExtension.java index 8212528b0be4..279a683c9f78 100644 --- a/jps/jps-builders-6/src/org/jetbrains/jps/javac/ast/AbstractRefCollectorCompilerToolExtension.java +++ b/jps/jps-builders-6/src/org/jetbrains/jps/javac/ast/AbstractRefCollectorCompilerToolExtension.java @@ -22,7 +22,7 @@ import org.jetbrains.jps.javac.DiagnosticOutputConsumer; import org.jetbrains.jps.javac.JavaCompilerToolExtension; import org.jetbrains.jps.javac.ast.api.JavacFileData; -import javax.tools.JavaCompiler; +import javax.tools.*; import java.util.Collection; public abstract class AbstractRefCollectorCompilerToolExtension extends JavaCompilerToolExtension { @@ -31,7 +31,7 @@ public abstract class AbstractRefCollectorCompilerToolExtension extends JavaComp @NotNull JavaCompiler.CompilationTask task, @NotNull Collection options, @NotNull final DiagnosticOutputConsumer diagnosticConsumer) { - if (isEnabled()) { + if (compilingTool.isCompilerTreeAPISupported() && isEnabled()) { JavacReferenceCollector.installOn(task, divideImportsRefs(), new Consumer() { @Override public void consume(JavacFileData data) { diff --git a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/java/EclipseCompilerTool.java b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/java/EclipseCompilerTool.java index 3b6637b29c9e..eba6e615af15 100644 --- a/jps/jps-builders/src/org/jetbrains/jps/builders/impl/java/EclipseCompilerTool.java +++ b/jps/jps-builders/src/org/jetbrains/jps/builders/impl/java/EclipseCompilerTool.java @@ -24,9 +24,8 @@ import org.jetbrains.jps.builders.java.CannotCreateJavaCompilerException; import org.jetbrains.jps.builders.java.JavaCompilingTool; import org.jetbrains.jps.model.java.compiler.JavaCompilers; -import javax.tools.JavaCompiler; +import javax.tools.*; import java.io.File; -import java.io.FilenameFilter; import java.util.Collections; import java.util.List; import java.util.ServiceLoader; @@ -54,6 +53,11 @@ public class EclipseCompilerTool extends JavaCompilingTool { return JavaCompilers.ECLIPSE_EMBEDDED_ID; } + @Override + public boolean isCompilerTreeAPISupported() { + return false; + } + @NotNull @Override public String getDescription() {