aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar janakr <janakr@google.com>2018-02-26 10:39:31 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2018-02-26 10:41:25 -0800
commit3343b2acc6b17883ca77d95089dd814b0c6ef826 (patch)
treee4c359885597948c7ae70a775ac0b7b787d2b315 /src/main/java/com/google/devtools
parentc4eb5bc0b858b01f142ae3659ca0d656befd9e32 (diff)
@AutoCodec a bunch of providers.
PiperOrigin-RevId: 187044297
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java6
10 files changed, 40 insertions, 22 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
index 2de5e1e3ab..b009257108 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaGenJarsProvider.java
@@ -19,6 +19,7 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
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 com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -31,6 +32,7 @@ import javax.annotation.Nullable;
category = SkylarkModuleCategory.NONE,
doc = "Information about jars that are a result of annotation processing for a Java rule."
)
+@AutoCodec
public final class JavaGenJarsProvider implements TransitiveInfoProvider {
private final boolean usesAnnotationProcessing;
@@ -45,7 +47,7 @@ public final class JavaGenJarsProvider implements TransitiveInfoProvider {
private final NestedSet<Artifact> transitiveGenClassJars;
private final NestedSet<Artifact> transitiveGenSourceJars;
- public JavaGenJarsProvider(
+ JavaGenJarsProvider(
boolean usesAnnotationProcessing,
@Nullable Artifact genClassJar,
@Nullable Artifact genSourceJar,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java
index cd28afe9e6..5461e28059 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaNativeLibraryProvider.java
@@ -19,12 +19,14 @@ 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.rules.cpp.LinkerInput;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
/**
* A target that provides native libraries in the transitive closure of its deps that are needed for
* executing Java code.
*/
@Immutable
+@AutoCodec
public final class JavaNativeLibraryProvider implements TransitiveInfoProvider {
private final NestedSet<LinkerInput> transitiveJavaNativeLibraries;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java
index abb329fd7a..166dacb014 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPrimaryClassProvider.java
@@ -15,11 +15,11 @@ package com.google.devtools.build.lib.rules.java;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-/**
- * Provides the fully qualified name of the primary class to invoke for java targets.
- */
+/** Provides the fully qualified name of the primary class to invoke for java targets. */
@Immutable
+@AutoCodec
public final class JavaPrimaryClassProvider implements TransitiveInfoProvider {
private final String primaryClass;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java
index d53256adcd..ddbaa7a6fc 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeClasspathProvider.java
@@ -18,17 +18,18 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
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 com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
/**
* Provider for the runtime classpath contributions of a Java binary.
*
- * Used to exclude already-available artifacts from related binaries
- * (e.g. plugins).
+ * <p>Used to exclude already-available artifacts from related binaries (e.g. plugins).
*/
@Immutable
@SkylarkModule(name = "JavaRuntimeClasspathProvider", doc = "")
+@AutoCodec
public final class JavaRuntimeClasspathProvider implements TransitiveInfoProvider {
private final NestedSet<Artifact> runtimeClasspath;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java
index a8caf284eb..3033639934 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaRuntimeJarProvider.java
@@ -17,6 +17,7 @@ import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.TransitiveInfoProvider;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
/**
* This {@link com.google.devtools.build.lib.analysis.TransitiveInfoProvider} contains the .jar
@@ -31,6 +32,7 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
* enough because that contains only ijars)
*/
@Immutable
+@AutoCodec
public final class JavaRuntimeJarProvider implements TransitiveInfoProvider {
private final ImmutableList<Artifact> runtimeJars;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
index 74e20f7a42..70d2edf85d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkApiProvider.java
@@ -23,6 +23,7 @@ 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.packages.SkylarkProviderIdentifier;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory;
@@ -41,6 +42,7 @@ import javax.annotation.Nullable;
+ "this struct, accessible as a <code>java</code> field on a "
+ "<a href=\"Target.html\">target</a>."
)
+@AutoCodec
public final class JavaSkylarkApiProvider extends SkylarkApiProvider {
/** The name of the field in Skylark used to access this class. */
public static final String NAME = "java";
@@ -57,9 +59,8 @@ public final class JavaSkylarkApiProvider extends SkylarkApiProvider {
return new JavaSkylarkApiProvider(null);
}
- /**
- * Creates a Skylark API provider that reads information from an explicit provider map.
- */
+ /** Creates a Skylark API provider that reads information from an explicit provider map. */
+ @AutoCodec.Instantiator
public static JavaSkylarkApiProvider fromProviderMap(
TransitiveInfoProviderMap transitiveInfoProviderMap) {
return new JavaSkylarkApiProvider(transitiveInfoProviderMap);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java
index 872822bba4..f29e90e306 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSourceInfoProvider.java
@@ -22,14 +22,15 @@ 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 com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import com.google.devtools.build.lib.vfs.PathFragment;
import java.util.Collection;
import java.util.Map;
-/**
- * A Provider describing the java sources directly belonging to a java rule.
- */
+/** A Provider describing the java sources directly belonging to a java rule. */
@Immutable
+@AutoCodec
public final class JavaSourceInfoProvider implements TransitiveInfoProvider {
private final Collection<Artifact> sourceFiles;
private final Collection<Artifact> sourceJars;
@@ -39,7 +40,8 @@ public final class JavaSourceInfoProvider implements TransitiveInfoProvider {
private final Collection<String> processorNames;
private final NestedSet<Artifact> processorPath;
- private JavaSourceInfoProvider(
+ @VisibleForSerialization
+ JavaSourceInfoProvider(
Collection<Artifact> sourceFiles,
Collection<Artifact> sourceJars,
Collection<Artifact> jarFiles,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
index c4620cb0b4..a3962818ff 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainProvider.java
@@ -27,11 +27,14 @@ import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.RuleErrorConsumer;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
import java.util.List;
import javax.annotation.Nullable;
/** Information about the JDK used by the <code>java_*</code> rules. */
@Immutable
+@AutoCodec
public class JavaToolchainProvider extends ToolchainInfo {
/** Returns the Java Toolchain associated with the rule being analyzed or {@code null}. */
@@ -133,7 +136,8 @@ public class JavaToolchainProvider extends ToolchainInfo {
private final ImmutableList<JavaPackageConfigurationProvider> packageConfiguration;
private final JavaSemantics javaSemantics;
- private JavaToolchainProvider(
+ @VisibleForSerialization
+ JavaToolchainProvider(
Label label,
NestedSet<Artifact> bootclasspath,
NestedSet<Artifact> extclasspath,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
index 25bcc94278..0d9347227b 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaToolchainSkylarkApiProvider.java
@@ -16,18 +16,22 @@ package com.google.devtools.build.lib.rules.java;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.analysis.skylark.SkylarkApiProvider;
+import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
import java.util.Iterator;
/**
- * A class that exposes the java_toolchain providers to Skylark. It is intended to provide a
- * simple and stable interface for Skylark users.
+ * A class that exposes the java_toolchain providers to Skylark. It is intended to provide a simple
+ * and stable interface for Skylark users.
*/
@SkylarkModule(
- name = "JavaToolchainSkylarkApiProvider",
- doc = "Provides access to information about the Java toolchain rule. "
- + "Accessible as a 'java_toolchain' field on a Target struct.")
+ name = "JavaToolchainSkylarkApiProvider",
+ doc =
+ "Provides access to information about the Java toolchain rule. "
+ + "Accessible as a 'java_toolchain' field on a Target struct."
+)
+@AutoCodec
public final class JavaToolchainSkylarkApiProvider extends SkylarkApiProvider {
/** The name of the field in Skylark used to access this class. */
public static final String NAME = "java_toolchain";
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
index 0a360b1b19..0db1e3371e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/ProguardSpecProvider.java
@@ -18,11 +18,11 @@ 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;
-/**
- * A target that can provide proguard specifications to Android binaries.
- */
+/** A target that can provide proguard specifications to Android binaries. */
@Immutable
+@AutoCodec
public final class ProguardSpecProvider implements TransitiveInfoProvider {
private final NestedSet<Artifact> transitiveProguardSpecs;