aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-03-16 17:49:11 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-16 17:50:27 -0700
commit889f562d95e65d0ccb61de85b0e906fae561dc26 (patch)
tree0dd8c5df88ad137f66609287c163d9fda5e5a2e8 /src/main/java/com/google/devtools/build/lib/rules
parentaa5bc11c3a64d7319f9f55dd45376db05fc9db0d (diff)
@AutoCodec some expressions that show up in Java configured targets.
PiperOrigin-RevId: 189419493
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArtifacts.java46
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceJarsProvider.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java5
6 files changed, 53 insertions, 31 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java
index a49d827091..e710f83a8a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgs.java
@@ -21,10 +21,12 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoCollection;
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.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.util.FileType;
/** A container of Java compilation artifacts. */
@AutoValue
+@AutoCodec
public abstract class JavaCompilationArgs {
// TODO(bazel-team): It would be desirable to use LinkOrderNestedSet here so that
// parents-before-deps is preserved for graphs that are not trees. However, the legacy
@@ -45,7 +47,9 @@ public abstract class JavaCompilationArgs {
NestedSetBuilder.<Artifact>create(Order.NAIVE_LINK_ORDER),
NestedSetBuilder.<Artifact>create(Order.NAIVE_LINK_ORDER));
- private static JavaCompilationArgs create(
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec.Instantiator
+ static JavaCompilationArgs create(
NestedSet<Artifact> runtimeJars,
NestedSet<Artifact> compileTimeJars,
NestedSet<Artifact> fullCompileTimeJars,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
index 34b0ddb17c..2c3816b58f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArgsProvider.java
@@ -22,26 +22,26 @@ 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.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.Collection;
-/**
- * An interface for objects that provide information on how to include them in
- * Java builds.
- */
+/** An interface for objects that provide information on how to include them in Java builds. */
@AutoValue
@Immutable
+@AutoCodec
public abstract class JavaCompilationArgsProvider implements TransitiveInfoProvider {
+ @AutoCodec.Instantiator
public static JavaCompilationArgsProvider create(
JavaCompilationArgs javaCompilationArgs,
JavaCompilationArgs recursiveJavaCompilationArgs,
- NestedSet<Artifact> compileTimeJavaDepArtifacts,
- NestedSet<Artifact> runTimeJavaDepArtifacts) {
+ NestedSet<Artifact> compileTimeJavaDependencyArtifacts,
+ NestedSet<Artifact> runTimeJavaDependencyArtifacts) {
return new AutoValue_JavaCompilationArgsProvider(
javaCompilationArgs,
recursiveJavaCompilationArgs,
- compileTimeJavaDepArtifacts,
- runTimeJavaDepArtifacts);
+ compileTimeJavaDependencyArtifacts,
+ runTimeJavaDependencyArtifacts);
}
public static JavaCompilationArgsProvider create(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArtifacts.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArtifacts.java
index a6d346a11e..89f3066ed5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArtifacts.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaCompilationArtifacts.java
@@ -20,31 +20,27 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.LinkedHashSet;
import java.util.Set;
-
import javax.annotation.Nullable;
/**
- * A collection of artifacts for java compilations. It concisely describes the
- * outputs of a java-related rule, with runtime jars, compile-time jars,
- * unfiltered compile-time jars (these are run through ijar if they are
- * dependent upon by another target), source ijars, and instrumentation
- * manifests. Not all rules generate all kinds of artifacts. Each java-related
- * rule should add both a runtime jar and either a compile-time jar or an
- * unfiltered compile-time jar.
+ * A collection of artifacts for java compilations. It concisely describes the outputs of a
+ * java-related rule, with runtime jars, compile-time jars, unfiltered compile-time jars (these are
+ * run through ijar if they are dependent upon by another target), source ijars, and instrumentation
+ * manifests. Not all rules generate all kinds of artifacts. Each java-related rule should add both
+ * a runtime jar and either a compile-time jar or an unfiltered compile-time jar.
*
- * <p>An instance of this class only collects the data for the current target,
- * not for the transitive closure of targets, so these still need to be
- * collected using some other mechanism, such as the {@link
- * JavaCompilationArgsProvider}.
+ * <p>An instance of this class only collects the data for the current target, not for the
+ * transitive closure of targets, so these still need to be collected using some other mechanism,
+ * such as the {@link JavaCompilationArgsProvider}.
*/
+@AutoCodec
@Immutable
@AutoValue
public abstract class JavaCompilationArtifacts {
-
- public static final JavaCompilationArtifacts EMPTY = new Builder().build();
+ @AutoCodec public static final JavaCompilationArtifacts EMPTY = new Builder().build();
public abstract ImmutableList<Artifact> getRuntimeJars();
public abstract ImmutableList<Artifact> getCompileTimeJars();
@@ -58,6 +54,24 @@ public abstract class JavaCompilationArtifacts {
return new Builder();
}
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec.Instantiator
+ static JavaCompilationArtifacts create(
+ ImmutableList<Artifact> runtimeJars,
+ ImmutableList<Artifact> compileTimeJars,
+ ImmutableList<Artifact> fullCompileTimeJars,
+ ImmutableList<Artifact> instrumentationMetadata,
+ Artifact compileTimeDependencyArtifact,
+ Artifact instrumentedJar) {
+ return new AutoValue_JavaCompilationArtifacts(
+ ImmutableList.copyOf(runtimeJars),
+ ImmutableList.copyOf(compileTimeJars),
+ ImmutableList.copyOf(fullCompileTimeJars),
+ ImmutableList.copyOf(instrumentationMetadata),
+ compileTimeDependencyArtifact,
+ instrumentedJar);
+ }
+
/**
* A builder for {@link JavaCompilationArtifacts}.
*/
@@ -71,7 +85,7 @@ public abstract class JavaCompilationArtifacts {
public JavaCompilationArtifacts build() {
Preconditions.checkState(fullCompileTimeJars.size() == compileTimeJars.size());
- return new AutoValue_JavaCompilationArtifacts(
+ return create(
ImmutableList.copyOf(runtimeJars),
ImmutableList.copyOf(compileTimeJars),
ImmutableList.copyOf(fullCompileTimeJars),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
index 826cd7b954..59ed632abc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java
@@ -20,10 +20,10 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-/**
- * Provider for users of Java plugins.
- */
+/** Provider for users of Java plugins. */
+@AutoCodec
@Immutable
public final class JavaPluginInfoProvider implements TransitiveInfoProvider {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceJarsProvider.java
index 2907e26fb7..fc01eb1cf1 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceJarsProvider.java
@@ -22,21 +22,22 @@ import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.List;
/** The collection of source jars from the transitive closure. */
@AutoValue
@Immutable
+@AutoCodec
public abstract class JavaSourceJarsProvider implements TransitiveInfoProvider {
+ @AutoCodec.Instantiator
public static JavaSourceJarsProvider create(
NestedSet<Artifact> transitiveSourceJars, Iterable<Artifact> sourceJars) {
return new AutoValue_JavaSourceJarsProvider(
transitiveSourceJars, ImmutableList.copyOf(sourceJars));
}
- JavaSourceJarsProvider() {}
-
/**
* Returns all the source jars in the transitive closure, that can be reached by a chain of
* JavaSourceJarsProvider instances.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java
index 90f9252524..8a928da8c4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/SingleJarActionBuilder.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.analysis.actions.CustomCommandLine.VectorAr
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import java.util.function.Consumer;
/**
@@ -174,7 +175,9 @@ public final class SingleJarActionBuilder {
return args.build();
}
- private static class ResourceArgMapFn extends CommandLineItem.ParametrizedMapFn<Artifact> {
+ @AutoCodec.VisibleForSerialization
+ @AutoCodec
+ static class ResourceArgMapFn extends CommandLineItem.ParametrizedMapFn<Artifact> {
private final JavaSemantics semantics;
ResourceArgMapFn(JavaSemantics semantics) {