aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar brandjon <brandjon@google.com>2017-06-15 23:26:23 +0200
committerGravatar Yun Peng <pcloudy@google.com>2017-06-16 09:27:20 +0200
commit68b9a7e2dc17e32b194238d287e79bee1ba035b9 (patch)
tree666f6a6e093ec81d5dab8dc9ff0ab63f22710465
parent8effaa779808cc22d3312b0a353cfa7e3e084f20 (diff)
Automated g4 rollback of commit da56606563ee9df438db93392f681bf2abb4ac97.
NO_SQ=Only failing TAP targets in our project are from an unrelated bug. *** Reason for rollback *** Initially we thought this broke just a few builds that were fixed in the depot. The scope is wider than that, affecting at least these two targets: [] [] There are hundreds of other failures in the TGP results that we haven't traced to a cause yet, but it's troubling that this CL was implicated twice in the small sampling I did. [] *** Original change description *** Use JavaCompilationArtifacts instead of JavaCompilationArgs to store Java compilation artifacts. Round-tripping through JavaCompilationArgs loses dependency information that upstream compilations use to optimize compile time classpaths. PiperOrigin-RevId: 159154375
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java18
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/ProtoJavaApiInfoProvider.java24
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java4
5 files changed, 27 insertions, 31 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
index ca960a950f..7a58f46c6e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibraryHelper.java
@@ -24,8 +24,6 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
-import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
-import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.rules.java.JavaConfiguration.JavaClasspathMode;
import com.google.devtools.build.lib.util.Preconditions;
import java.util.ArrayList;
@@ -142,8 +140,10 @@ public final class JavaLibraryHelper {
return this;
}
- /** Creates the compile actions. */
- public JavaCompilationArtifacts build(
+ /**
+ * Creates the compile actions.
+ */
+ public JavaCompilationArgs build(
JavaSemantics semantics,
JavaToolchainProvider javaToolchainProvider,
NestedSet<Artifact> hostJavabase,
@@ -184,7 +184,7 @@ public final class JavaLibraryHelper {
helper.createCompileTimeJarAction(output, artifactsBuilder);
artifactsBuilder.addRuntimeJar(output);
- return artifactsBuilder.build();
+ return JavaCompilationArgs.builder().merge(artifactsBuilder.build()).build();
}
/**
@@ -199,8 +199,7 @@ public final class JavaLibraryHelper {
* compilation. Contrast this with {@link #setCompilationStrictDepsMode}.
*/
public JavaCompilationArgsProvider buildCompilationArgsProvider(
- JavaCompilationArtifacts artifacts, boolean isReportedAsStrict) {
- JavaCompilationArgs directArgs = JavaCompilationArgs.builder().merge(artifacts).build();
+ JavaCompilationArgs directArgs, boolean isReportedAsStrict) {
JavaCompilationArgs transitiveArgs =
JavaCompilationArgs.builder()
.addTransitiveArgs(directArgs, BOTH)
@@ -208,10 +207,7 @@ public final class JavaLibraryHelper {
.build();
return JavaCompilationArgsProvider.create(
- isReportedAsStrict ? directArgs : transitiveArgs,
- transitiveArgs,
- NestedSetBuilder.create(Order.STABLE_ORDER, artifacts.getCompileTimeDependencyArtifact()),
- NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER));
+ isReportedAsStrict ? directArgs : transitiveArgs, transitiveArgs);
}
private void addDepsToAttributes(JavaTargetAttributes.Builder attributes) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
index 60e38a8528..4f975a1c76 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
@@ -222,7 +222,7 @@ public class JavaSkylarkCommon {
: hostJavabaseProvider.getMiddlemanArtifact();
JavaToolchainProvider javaToolchainProvider =
checkNotNull(javaToolchain.getProvider(JavaToolchainProvider.class));
- JavaCompilationArtifacts artifacts =
+ JavaCompilationArgs artifacts =
helper.build(
javaSemantics,
javaToolchainProvider,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProtoJavaApiInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProtoJavaApiInfoProvider.java
index a6d05f99e8..e76072a523 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProtoJavaApiInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProtoJavaApiInfoProvider.java
@@ -36,9 +36,9 @@ public abstract class ProtoJavaApiInfoProvider implements TransitiveInfoProvider
JavaCompilationArgs transitiveJavaCompilationArgss1,
JavaCompilationArgs transitiveJavaCompilationArgssMutable,
JavaCompilationArgs transitiveJavaCompilationArgssImmutable,
- JavaCompilationArtifacts javaCompilationArgs1,
- JavaCompilationArtifacts javaCompilationArgsMutable,
- JavaCompilationArtifacts javaCompilationArgsImmutable,
+ JavaCompilationArgs javaCompilationArgs1,
+ JavaCompilationArgs javaCompilationArgsMutable,
+ JavaCompilationArgs javaCompilationArgsImmutable,
Artifact sourceJar1,
Artifact sourceJarMutable,
Artifact sourceJarImmutable,
@@ -111,20 +111,22 @@ public abstract class ProtoJavaApiInfoProvider implements TransitiveInfoProvider
*/
public abstract JavaCompilationArgs getTransitiveJavaCompilationArgsImmutable();
- /** Returns the artifacts for java compilation (API version 1) for only this target. */
- public abstract JavaCompilationArtifacts getJavaCompilationArtifacts1();
+ /**
+ * Returns the artifacts for java compilation (API version 1) for only this target.
+ */
+ public abstract JavaCompilationArgs getJavaCompilationArgs1();
/**
- * Returns the artifacts for java compilation (API version 2, code for mutable API) for only this
- * target.
+ * Returns the artifacts for java compilation (API version 2, code for mutable API)
+ * for only this target.
*/
- public abstract JavaCompilationArtifacts getJavaCompilationArtifactsMutable();
+ public abstract JavaCompilationArgs getJavaCompilationArgsMutable();
/**
- * Returns the artifacts for java compilation (API version 2, code for immutable API) for only
- * this target.
+ * Returns the artifacts for java compilation (API version 2, code for immutable API)
+ * for only this target.
*/
- public abstract JavaCompilationArtifacts getJavaCompilationArtifactsImmutable();
+ public abstract JavaCompilationArgs getJavaCompilationArgsImmutable();
// The following 3 fields are the -src.jar artifact created by proto_library. If a certain
// proto_library does not produce some artifact, it'll be null. This can happen for example when
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java
index 3dec6f0286..bb75a937d5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/ActionReuser.java
@@ -32,7 +32,6 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgs;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
-import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaRuleOutputJarsProvider;
import com.google.devtools.build.lib.rules.java.JavaSkylarkApiProvider;
import com.google.devtools.build.lib.rules.java.JavaSourceJarsProvider;
@@ -53,7 +52,7 @@ public class ActionReuser {
return false;
}
- JavaCompilationArtifacts directJars = javaApi.getJavaCompilationArtifactsImmutable();
+ JavaCompilationArgs directJars = javaApi.getJavaCompilationArgsImmutable();
if (isEmpty(directJars.getCompileTimeJars()) || javaApi.sourceJarImmutable() == null) {
return false;
}
@@ -62,7 +61,7 @@ public class ActionReuser {
JavaCompilationArgs.builder()
.addTransitiveArgs(javaApi.getTransitiveJavaCompilationArgsImmutable(), BOTH)
.addTransitiveDependencies(javaApi.getProtoRuntimeImmutable(), true /* recursive */)
- .merge(directJars)
+ .addTransitiveArgs(directJars, BOTH)
.build();
Artifact outputJar = getOnlyElement(directJars.getRuntimeJars());
@@ -71,10 +70,9 @@ public class ActionReuser {
JavaCompilationArgsProvider compilationArgsProvider =
JavaCompilationArgsProvider.create(
- JavaCompilationArgs.builder().merge(directJars).build(),
+ directJars,
transitiveJars,
- NestedSetBuilder.create(
- Order.STABLE_ORDER, directJars.getCompileTimeDependencyArtifact()),
+ NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER),
NestedSetBuilder.<Artifact>emptySet(Order.STABLE_ORDER));
JavaSkylarkApiProvider.Builder skylarkApiProvider =
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
index debd453926..967756c490 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaLiteProtoAspect.java
@@ -46,8 +46,8 @@ import com.google.devtools.build.lib.packages.Attribute;
import com.google.devtools.build.lib.packages.AttributeMap;
import com.google.devtools.build.lib.packages.NativeAspectClass;
import com.google.devtools.build.lib.packages.Rule;
+import com.google.devtools.build.lib.rules.java.JavaCompilationArgs;
import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider;
-import com.google.devtools.build.lib.rules.java.JavaCompilationArtifacts;
import com.google.devtools.build.lib.rules.java.JavaCompilationHelper;
import com.google.devtools.build.lib.rules.java.JavaConfiguration;
import com.google.devtools.build.lib.rules.java.JavaHelper;
@@ -255,7 +255,7 @@ public class JavaLiteProtoAspect extends NativeAspectClass implements Configured
helper.addDep(runtime.getProvider(JavaCompilationArgsProvider.class));
}
helper.setCompilationStrictDepsMode(StrictDepsMode.OFF);
- JavaCompilationArtifacts artifacts =
+ JavaCompilationArgs artifacts =
helper.build(
javaSemantics,
JavaCompilationHelper.getJavaToolchainProvider(ruleContext),