diff options
author | cushon <cushon@google.com> | 2018-07-27 11:50:37 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-07-27 11:52:09 -0700 |
commit | bc9b35b1856b1bd1fc565a8ee3b6de278f6e5c0a (patch) | |
tree | 9beb13396d7ee2f2775e5a65ad011a43c275349a /src/java_tools/buildjar | |
parent | 129c3e2fd3dfdfe1cd312826988f0944bdd69236 (diff) |
Skip strict deps suggested fix commands with strict deps disabled
instead of just skipping the add dep errors.
RELNOTES: follow-up to https://github.com/bazelbuild/bazel/commit/1ac359743176e659e9c7472645e3142f3c44b9e8
PiperOrigin-RevId: 206350053
Diffstat (limited to 'src/java_tools/buildjar')
4 files changed, 15 insertions, 5 deletions
diff --git a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java index 60ec10c581..d16ed69fac 100644 --- a/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java +++ b/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/javac/plugins/dependency/StrictJavaDepsPlugin.java @@ -22,6 +22,7 @@ import com.google.auto.value.AutoValue; import com.google.common.collect.ImmutableSet; import com.google.devtools.build.buildjar.JarOwner; import com.google.devtools.build.buildjar.javac.plugins.BlazeJavaCompilerPlugin; +import com.google.devtools.build.buildjar.javac.plugins.dependency.DependencyModule.StrictJavaDeps; import com.google.devtools.build.lib.view.proto.Deps; import com.google.devtools.build.lib.view.proto.Deps.Dependency; import com.sun.tools.javac.code.Flags; @@ -200,9 +201,11 @@ public final class StrictJavaDepsPlugin extends BlazeJavaCompilerPlugin { // suggest private build labels. .map(owner -> owner.withLabel(owner.label().map(label -> canonicalizeTarget(label)))) .collect(toImmutableSet()); - errWriter.print( - dependencyModule.getFixMessage().get(canonicalizedMissing, canonicalizedLabel)); - dependencyModule.setHasMissingTargets(); + if (dependencyModule.getStrictJavaDeps() != StrictJavaDeps.OFF) { + errWriter.print( + dependencyModule.getFixMessage().get(canonicalizedMissing, canonicalizedLabel)); + dependencyModule.setHasMissingTargets(); + } } } diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/AbstractJavacTurbineCompilationTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/AbstractJavacTurbineCompilationTest.java index 36ec4e2668..2f956d4ba1 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/AbstractJavacTurbineCompilationTest.java +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/AbstractJavacTurbineCompilationTest.java @@ -19,6 +19,7 @@ import static com.google.common.truth.Truth.assertThat; import static java.nio.charset.StandardCharsets.UTF_8; import com.google.common.io.ByteStreams; +import com.google.devtools.build.buildjar.jarhelper.JarCreator; import com.google.devtools.build.java.bazel.JavacBootclasspath; import com.google.devtools.build.java.turbine.javac.JavacTurbine.Result; import com.google.turbine.options.TurbineOptions; @@ -37,9 +38,11 @@ import java.util.Enumeration; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.jar.Attributes; import java.util.jar.JarEntry; import java.util.jar.JarFile; import java.util.jar.JarOutputStream; +import java.util.jar.Manifest; import org.junit.Before; import org.junit.Rule; import org.junit.rules.TemporaryFolder; @@ -119,8 +122,11 @@ public abstract class AbstractJavacTurbineCompilationTest { protected Path createClassJar(String jarName, Class<?>... classes) throws IOException { Path jarPath = temp.newFile(jarName).toPath(); + Manifest manifest = new Manifest(); + manifest.getMainAttributes().put(Attributes.Name.MANIFEST_VERSION, "1.0"); + manifest.getMainAttributes().put(JarCreator.TARGET_LABEL, "//" + jarName); try (OutputStream os = Files.newOutputStream(jarPath); - JarOutputStream jos = new JarOutputStream(os)) { + JarOutputStream jos = new JarOutputStream(os, manifest)) { for (Class<?> clazz : classes) { String classFileName = clazz.getName().replace('.', '/') + ".class"; jos.putNextEntry(new JarEntry(classFileName)); diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD index 701f380d64..039902dbda 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/BUILD @@ -5,6 +5,7 @@ java_library( testonly = 1, srcs = ["AbstractJavacTurbineCompilationTest.java"], deps = [ + "//src/java_tools/buildjar/java/com/google/devtools/build/buildjar/jarhelper", "//src/java_tools/buildjar/java/com/google/devtools/build/java/bazel:JavacBootclasspath", "//src/java_tools/buildjar/java/com/google/devtools/build/java/turbine/javac:javac_turbine", "//src/main/protobuf:deps_java_proto", diff --git a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java index c598edf538..7d44dd7462 100644 --- a/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java +++ b/src/java_tools/buildjar/javatests/com/google/devtools/build/java/turbine/javac/JavacTurbineTest.java @@ -1235,6 +1235,7 @@ public class JavacTurbineTest extends AbstractJavacTurbineCompilationTest { result = turbine.compile(); } assertThat(errOutput.toString()).doesNotContain("[strict]"); + assertThat(errOutput.toString()).doesNotContain("** Please add the following dependencies:"); assertThat(result).isEqualTo(Result.ERROR); } @@ -1511,4 +1512,3 @@ public class JavacTurbineTest extends AbstractJavacTurbineCompilationTest { assertThat(output.toString()).contains("A.java:2: error: class, interface, or enum expected"); } } - |