diff options
author | 2018-03-25 12:42:11 -0700 | |
---|---|---|
committer | 2018-03-25 12:43:29 -0700 | |
commit | bffa2db380cb3ca2fd9262ac5a45d02518376e03 (patch) | |
tree | 47dc56bbd36490f207fd11c36610e9d70050e51a /src | |
parent | 00408d666b8a61c80e41dcb7615ec9b625497e61 (diff) |
@AutoCodec some more classes needed for large Java builds.
PiperOrigin-RevId: 190392567
Diffstat (limited to 'src')
5 files changed, 25 insertions, 11 deletions
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 c30a9ed394..c373257370 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.AspectParameters; 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 @@ import javax.annotation.Nullable; * @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 52b3ee2ada..ad44b91e81 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.Artifact; 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 @@ import java.util.UUID; * 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 0dabcab865..59b534ea1a 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.LinkedHashMultimap; 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 @@ public final class ConfigurationFragmentPolicy { */ 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 1cf0188d29..38f1827373 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 static com.google.common.base.Preconditions.checkNotNull; 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.analysis.actions.SpawnAction; 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 @@ public final class OneVersionCheckActionBuilder { } 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 8998ac1db5..55b185a251 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.TransitiveInfoProviderMap; 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; |