@AutoCodec some more classes needed for large Java builds. PiperOrigin-RevId: 190392567
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java index c30a9ed..c373257 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ConfiguredAspect.java
@@ -32,6 +32,7 @@ import com.google.devtools.build.lib.packages.Info; import com.google.devtools.build.lib.packages.Provider; import com.google.devtools.build.lib.packages.SkylarkProviderIdentifier; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.syntax.EvalException; import java.util.Arrays; import java.util.Map; @@ -54,11 +55,13 @@ * @see com.google.devtools.build.lib.packages.AspectClass */ @Immutable +@AutoCodec public final class ConfiguredAspect { private final TransitiveInfoProviderMap providers; private final AspectDescriptor descriptor; - private ConfiguredAspect(AspectDescriptor descriptor, TransitiveInfoProviderMap providers) { + @AutoCodec.VisibleForSerialization + ConfiguredAspect(AspectDescriptor descriptor, TransitiveInfoProviderMap providers) { this.descriptor = descriptor; this.providers = providers; }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java index 52b3ee2..ad44b91 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/PseudoAction.java
@@ -24,6 +24,7 @@ import com.google.devtools.build.lib.actions.CommandLineExpansionException; import com.google.devtools.build.lib.actions.extra.ExtraActionInfo; import com.google.devtools.build.lib.collect.nestedset.NestedSet; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.util.Fingerprint; import com.google.protobuf.GeneratedMessage.GeneratedExtension; import com.google.protobuf.MessageLite; @@ -35,9 +36,12 @@ * about rules to extra_actions. */ public class PseudoAction<InfoType extends MessageLite> extends AbstractAction { - private final UUID uuid; + @AutoCodec.VisibleForSerialization protected final UUID uuid; private final String mnemonic; - private final GeneratedExtension<ExtraActionInfo, InfoType> infoExtension; + + @AutoCodec.VisibleForSerialization + protected final GeneratedExtension<ExtraActionInfo, InfoType> infoExtension; + private final InfoType info; public PseudoAction(UUID uuid, ActionOwner owner,
diff --git a/src/main/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicy.java b/src/main/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicy.java index 0dabcab..59b534e 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicy.java +++ b/src/main/java/com/google/devtools/build/lib/packages/ConfigurationFragmentPolicy.java
@@ -20,14 +20,16 @@ import com.google.common.collect.SetMultimap; import com.google.devtools.build.lib.analysis.config.transitions.ConfigurationTransition; import com.google.devtools.build.lib.analysis.config.transitions.NoTransition; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import java.util.Collection; import java.util.Set; /** - * Policy used to express the set of configuration fragments which are legal for a rule or aspect - * to access. + * Policy used to express the set of configuration fragments which are legal for a rule or aspect to + * access. */ +@AutoCodec public final class ConfigurationFragmentPolicy { /** @@ -188,7 +190,8 @@ */ private final MissingFragmentPolicy missingFragmentPolicy; - private ConfigurationFragmentPolicy( + @AutoCodec.VisibleForSerialization + ConfigurationFragmentPolicy( ImmutableSetMultimap<ConfigurationTransition, Class<?>> requiredConfigurationFragments, ImmutableSetMultimap<ConfigurationTransition, String> requiredConfigurationFragmentNames, MissingFragmentPolicy missingFragmentPolicy) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java index 1cf0188..38f1827 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/OneVersionCheckActionBuilder.java
@@ -18,6 +18,7 @@ import com.google.common.base.Preconditions; import com.google.devtools.build.lib.actions.Artifact; +import com.google.devtools.build.lib.actions.CommandLineItem; import com.google.devtools.build.lib.actions.ParamFileInfo; import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType; import com.google.devtools.build.lib.analysis.RuleContext; @@ -27,7 +28,7 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.rules.java.JavaConfiguration.OneVersionEnforcementLevel; -import java.util.function.Consumer; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; /** Utility for generating a call to the one-version binary. */ public final class OneVersionCheckActionBuilder { @@ -112,12 +113,13 @@ } static VectorArg<String> jarAndTargetVectorArg(NestedSet<Artifact> jarsToCheck) { - return VectorArg.of(jarsToCheck).mapped(OneVersionCheckActionBuilder::expandToJarAndTarget); + return VectorArg.of(jarsToCheck).mapped(EXPAND_TO_JAR_AND_TARGET); } - private static void expandToJarAndTarget(Artifact jar, Consumer<String> args) { - args.accept(jar.getExecPathString() + "," + getArtifactOwnerGeneralizedLabel(jar)); - } + @AutoCodec @AutoCodec.VisibleForSerialization + static final CommandLineItem.MapFn<Artifact> EXPAND_TO_JAR_AND_TARGET = + (jar, args) -> + args.accept(jar.getExecPathString() + "," + getArtifactOwnerGeneralizedLabel(jar)); private static String getArtifactOwnerGeneralizedLabel(Artifact artifact) { Label label = checkNotNull(artifact.getArtifactOwner(), artifact).getLabel();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibraryAspectProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibraryAspectProvider.java index 8998ac1..55b185a 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibraryAspectProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/proto/JavaProtoLibraryAspectProvider.java
@@ -19,8 +19,10 @@ import com.google.devtools.build.lib.analysis.WrappingProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.rules.java.JavaCompilationArgs; +import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; /** A provider used to communicate information between java_proto_library and its aspect. */ +@AutoCodec public class JavaProtoLibraryAspectProvider implements WrappingProvider { private final TransitiveInfoProviderMap transitiveInfoProviderMap; private final NestedSet<Artifact> jars;