Deletes @AutoCodec annotation from BuildConfiguration.Fragment subclasses. It's less safe than DynamicCodec. PiperOrigin-RevId: 211828418
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java index 48753ef..5357946 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/PlatformConfiguration.java
@@ -18,12 +18,10 @@ import com.google.devtools.build.lib.analysis.config.BuildConfiguration; import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.concurrent.ThreadSafety; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.platform.PlatformConfigurationApi; import java.util.List; /** A configuration fragment describing the current platform configuration. */ -@AutoCodec @ThreadSafety.Immutable public class PlatformConfiguration extends BuildConfiguration.Fragment implements PlatformConfigurationApi { @@ -33,7 +31,6 @@ private final ImmutableList<String> extraToolchains; private final ImmutableList<Label> enabledToolchainTypes; - @AutoCodec.Instantiator PlatformConfiguration( Label hostPlatform, ImmutableList<String> extraExecutionPlatforms,
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java index 9e329ce..7da070a 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/ShellConfiguration.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.analysis.config.BuildOptions; import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory; import com.google.devtools.build.lib.analysis.config.FragmentOptions; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.util.OS; import com.google.devtools.build.lib.util.OptionsUtils.PathFragmentConverter; import com.google.devtools.build.lib.vfs.PathFragment; @@ -32,7 +31,6 @@ import javax.annotation.Nullable; /** A configuration fragment that tells where the shell is. */ -@AutoCodec public class ShellConfiguration extends BuildConfiguration.Fragment { private static final ImmutableMap<OS, PathFragment> OS_SPECIFIC_SHELL = ImmutableMap.<OS, PathFragment>builder() @@ -43,7 +41,7 @@ private final PathFragment shellExecutable; private final boolean useShBinaryStubScript; - public ShellConfiguration(PathFragment shellExecutable, boolean useShBinaryStubScript) { + private ShellConfiguration(PathFragment shellExecutable, boolean useShBinaryStubScript) { this.shellExecutable = shellExecutable; this.useShBinaryStubScript = useShBinaryStubScript; }
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java index 022ea53..3ce4918 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/test/TestConfiguration.java
@@ -31,7 +31,6 @@ import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; import com.google.devtools.build.lib.packages.TestTimeout; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.util.RegexFilter; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDefinition; @@ -47,7 +46,6 @@ import java.util.Set; /** Test-related options. */ -@AutoCodec public class TestConfiguration extends Fragment { public static final OptionsDiffPredicate HAVE_OPTIONS_AFFECTING_NON_TEST_TARGETS_CHANGED = (diff, options) -> { @@ -292,7 +290,7 @@ private final TestOptions options; private final ImmutableMap<TestTimeout, Duration> testTimeout; - TestConfiguration(TestOptions options) { + private TestConfiguration(TestOptions options) { this.options = options; this.testTimeout = ImmutableMap.copyOf(options.testTimeout); }
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java index 7193ffa..d19e56b 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/python/BazelPythonConfiguration.java
@@ -24,7 +24,6 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.cmdline.Label; 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.util.OS; import com.google.devtools.build.lib.vfs.PathFragment; import com.google.devtools.common.options.Converter; @@ -34,7 +33,6 @@ import com.google.devtools.common.options.OptionMetadataTag; /** Bazel-specific Python configuration. */ -@AutoCodec @Immutable public class BazelPythonConfiguration extends BuildConfiguration.Fragment { /** @@ -151,8 +149,7 @@ private final Options options; - @AutoCodec.Instantiator - BazelPythonConfiguration(Options options) { + private BazelPythonConfiguration(Options options) { this.options = options; }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java index 991143c..f49e17e 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidConfiguration.java
@@ -36,7 +36,6 @@ import com.google.devtools.build.lib.rules.cpp.CppConfiguration.DynamicMode; import com.google.devtools.build.lib.rules.cpp.CppOptions.DynamicModeConverter; import com.google.devtools.build.lib.rules.cpp.CppOptions.LibcTopLabelConverter; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.android.AndroidConfigurationApi; import com.google.devtools.common.options.Converters; import com.google.devtools.common.options.EnumConverter; @@ -48,7 +47,6 @@ import javax.annotation.Nullable; /** Configuration fragment for Android rules. */ -@AutoCodec @Immutable public class AndroidConfiguration extends BuildConfiguration.Fragment implements AndroidConfigurationApi { @@ -977,7 +975,7 @@ private final boolean dataBindingV2; private final boolean persistentBusyboxTools; - AndroidConfiguration(Options options) throws InvalidConfigurationException { + private AndroidConfiguration(Options options) throws InvalidConfigurationException { this.sdk = options.sdk; this.useIncrementalNativeLibs = options.incrementalNativeLibs; this.cpu = options.cpu; @@ -1034,83 +1032,6 @@ } } - @AutoCodec.Instantiator - AndroidConfiguration( - Label sdk, - String cpu, - boolean useIncrementalNativeLibs, - ConfigurationDistinguisher configurationDistinguisher, - boolean incrementalDexing, - int incrementalDexingShardsAfterProguard, - boolean incrementalDexingUseDexSharder, - boolean incrementalDexingAfterProguardByDefault, - boolean assumeMinSdkVersion, - ImmutableList<String> dexoptsSupportedInIncrementalDexing, - ImmutableList<String> targetDexoptsThatPreventIncrementalDexing, - ImmutableList<String> dexoptsSupportedInDexMerger, - boolean useWorkersWithDexbuilder, - boolean desugarJava8, - boolean desugarJava8Libs, - boolean checkDesugarDeps, - boolean useRexToCompressDexFiles, - boolean allowAndroidLibraryDepsWithoutSrcs, - boolean useAndroidResourceShrinking, - boolean useAndroidResourceCycleShrinking, - AndroidManifestMerger manifestMerger, - ApkSigningMethod apkSigningMethod, - boolean useSingleJarApkBuilder, - boolean compressJavaResources, - boolean exportsManifestDefault, - AndroidAaptVersion androidAaptVersion, - boolean useAapt2ForRobolectric, - boolean throwOnResourceConflict, - boolean useParallelDex2Oat, - boolean skipParsingAction, - boolean fixedResourceNeverlinking, - AndroidRobolectricTestDeprecationLevel robolectricTestDeprecationLevel, - boolean checkForMigrationTag, - boolean oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest, - boolean dataBindingV2, - boolean persistentBusyboxTools) { - this.sdk = sdk; - this.cpu = cpu; - this.useIncrementalNativeLibs = useIncrementalNativeLibs; - this.configurationDistinguisher = configurationDistinguisher; - this.incrementalDexing = incrementalDexing; - this.incrementalDexingShardsAfterProguard = incrementalDexingShardsAfterProguard; - this.incrementalDexingUseDexSharder = incrementalDexingUseDexSharder; - this.incrementalDexingAfterProguardByDefault = incrementalDexingAfterProguardByDefault; - this.assumeMinSdkVersion = assumeMinSdkVersion; - this.dexoptsSupportedInIncrementalDexing = dexoptsSupportedInIncrementalDexing; - this.targetDexoptsThatPreventIncrementalDexing = targetDexoptsThatPreventIncrementalDexing; - this.dexoptsSupportedInDexMerger = dexoptsSupportedInDexMerger; - this.useWorkersWithDexbuilder = useWorkersWithDexbuilder; - this.desugarJava8 = desugarJava8; - this.desugarJava8Libs = desugarJava8Libs; - this.checkDesugarDeps = checkDesugarDeps; - this.useRexToCompressDexFiles = useRexToCompressDexFiles; - this.allowAndroidLibraryDepsWithoutSrcs = allowAndroidLibraryDepsWithoutSrcs; - this.useAndroidResourceShrinking = useAndroidResourceShrinking; - this.useAndroidResourceCycleShrinking = useAndroidResourceCycleShrinking; - this.manifestMerger = manifestMerger; - this.apkSigningMethod = apkSigningMethod; - this.useSingleJarApkBuilder = useSingleJarApkBuilder; - this.compressJavaResources = compressJavaResources; - this.exportsManifestDefault = exportsManifestDefault; - this.androidAaptVersion = androidAaptVersion; - this.useAapt2ForRobolectric = useAapt2ForRobolectric; - this.throwOnResourceConflict = throwOnResourceConflict; - this.useParallelDex2Oat = useParallelDex2Oat; - this.skipParsingAction = skipParsingAction; - this.fixedResourceNeverlinking = fixedResourceNeverlinking; - this.robolectricTestDeprecationLevel = robolectricTestDeprecationLevel; - this.checkForMigrationTag = checkForMigrationTag; - this.oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest = - oneVersionEnforcementUseTransitiveJarsForBinaryUnderTest; - this.dataBindingV2 = dataBindingV2; - this.persistentBusyboxTools = persistentBusyboxTools; - } - @Override public String getCpu() { return cpu;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java index bb35a35..3530bc5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestConfiguration.java
@@ -22,14 +22,12 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.common.options.Option; import com.google.devtools.common.options.OptionDocumentationCategory; import com.google.devtools.common.options.OptionEffectTag; import javax.annotation.Nullable; /** Configuration fragment for android_local_test. */ -@AutoCodec @Immutable public class AndroidLocalTestConfiguration extends BuildConfiguration.Fragment { /** android_local_test specific options */ @@ -81,15 +79,10 @@ private final boolean androidLocalTestBinaryResources; - AndroidLocalTestConfiguration(Options options) { + private AndroidLocalTestConfiguration(Options options) { this.androidLocalTestBinaryResources = options.androidLocalTestBinaryResources; } - @AutoCodec.Instantiator - AndroidLocalTestConfiguration(boolean androidLocalTestBinaryResources) { - this.androidLocalTestBinaryResources = androidLocalTestBinaryResources; - } - public boolean useAndroidLocalTestBinaryResources() { return this.androidLocalTestBinaryResources; }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java index 62e2143..ecea75d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/AppleConfiguration.java
@@ -31,14 +31,12 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.rules.apple.AppleCommandLineOptions.AppleBitcodeMode; import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.apple.AppleConfigurationApi; import java.util.ArrayList; import java.util.List; import javax.annotation.Nullable; /** A configuration containing flags required for Apple platforms and tools. */ -@AutoCodec @Immutable public class AppleConfiguration extends BuildConfiguration.Fragment implements AppleConfigurationApi<PlatformType> { @@ -80,8 +78,7 @@ private final boolean mandatoryMinimumVersion; private final boolean objcProviderFromLinked; - @AutoCodec.Instantiator - AppleConfiguration(AppleCommandLineOptions options, String iosCpu) { + private AppleConfiguration(AppleCommandLineOptions options, String iosCpu) { this.options = options; this.iosCpu = iosCpu; this.appleSplitCpu = Preconditions.checkNotNull(options.appleSplitCpu, "appleSplitCpu");
diff --git a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java index 39aa220..f653e89 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/apple/swift/SwiftConfiguration.java
@@ -23,26 +23,19 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; 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.skylarkbuildapi.apple.SwiftConfigurationApi; /** * A configuration containing flags required for Swift tools. This is used primarily by swift_* * family of rules written in Skylark. */ -@AutoCodec @Immutable public class SwiftConfiguration extends BuildConfiguration.Fragment implements SwiftConfigurationApi { private final ImmutableList<String> copts; - public SwiftConfiguration(SwiftCommandLineOptions options) { - this(ImmutableList.copyOf(options.copts)); - } - - @AutoCodec.Instantiator - SwiftConfiguration(ImmutableList<String> copts) { - this.copts = copts; + private SwiftConfiguration(SwiftCommandLineOptions options) { + this.copts = ImmutableList.copyOf(options.copts); } /** Returns a list of options to use for compiling Swift. */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java index 708a825..ac577dc 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/config/ConfigFeatureFlagConfiguration.java
@@ -14,6 +14,7 @@ package com.google.devtools.build.lib.rules.config; +import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; @@ -29,7 +30,6 @@ import com.google.devtools.build.lib.analysis.config.FragmentOptions; import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import java.util.Map; import java.util.Optional; import java.util.SortedMap; @@ -39,7 +39,6 @@ * Configuration fragment for Android's config_feature_flag, flags which can be defined in BUILD * files. */ -@AutoCodec public final class ConfigFeatureFlagConfiguration extends BuildConfiguration.Fragment { /** * A configuration fragment loader able to create instances of {@link @@ -95,24 +94,14 @@ @Nullable private final String flagHash; /** Creates a new configuration fragment from the given {@link ConfigFeatureFlagOptions}. */ - public ConfigFeatureFlagConfiguration(ConfigFeatureFlagOptions options) { + @VisibleForTesting + ConfigFeatureFlagConfiguration(ConfigFeatureFlagOptions options) { // TODO(mstaib): we'd love to only construct these when we're trimmed, but this is still what // the top level looks like - make constructing an untrimmed configuration an error when no // configurations are constructed untrimmed. - this( - options.getFlagValues(), - options.getKnownDefaultFlags().orElse(ImmutableSortedSet.of()), - options.enforceTransitiveConfigsForConfigFeatureFlag && options.isTrimmed()); - } - - @AutoCodec.Instantiator - ConfigFeatureFlagConfiguration( - ImmutableSortedMap<Label, String> flagValues, - ImmutableSortedSet<Label> knownDefaultFlags, - boolean isTrimmed) { - this.flagValues = flagValues; - this.knownDefaultFlags = knownDefaultFlags; - this.isTrimmed = isTrimmed; + this.flagValues = options.getFlagValues(); + this.knownDefaultFlags = options.getKnownDefaultFlags().orElse(ImmutableSortedSet.of()); + this.isTrimmed = options.enforceTransitiveConfigsForConfigFeatureFlag && options.isTrimmed(); // We don't hash flags set to their default values; all valid configurations of a target have // the same set of known flags, so the set of flags set to something other than their default // values is enough to disambiguate configurations. Similarly, isTrimmed need not be hashed;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java index e3bb2ff..46cbdef 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppConfiguration.java
@@ -36,7 +36,6 @@ import com.google.devtools.build.lib.rules.cpp.CppConfigurationLoader.CppConfigurationParameters; import com.google.devtools.build.lib.rules.cpp.CrosstoolConfigurationLoader.CrosstoolFile; import com.google.devtools.build.lib.rules.cpp.Link.LinkingMode; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.cpp.CppConfigurationApi; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.syntax.EvalException; @@ -79,7 +78,6 @@ * --compiler values, and construct the key as follows: <toolchain.cpu>|<toolchain.compiler>. * </ul> */ -@AutoCodec @Immutable public final class CppConfiguration extends BuildConfiguration.Fragment implements CppConfigurationApi<InvalidConfigurationException> { @@ -299,8 +297,7 @@ cppToolchainInfo); } - @AutoCodec.Instantiator - CppConfiguration( + private CppConfiguration( Label crosstoolTop, CrosstoolFile crosstoolFile, String desiredCpu,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java index ff5b8d1..4ed7b13 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaConfiguration.java
@@ -28,7 +28,6 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.java.JavaConfigurationApi; import com.google.devtools.common.options.TriState; import java.util.List; @@ -36,7 +35,6 @@ import javax.annotation.Nullable; /** A java compiler configuration containing the flags required for compilation. */ -@AutoCodec @Immutable public final class JavaConfiguration extends Fragment implements JavaConfigurationApi { @@ -180,9 +178,7 @@ // TODO(dmarting): remove once we have a proper solution for #2539 private final boolean useLegacyBazelJavaTest; - JavaConfiguration( - JavaOptions javaOptions) - throws InvalidConfigurationException { + JavaConfiguration(JavaOptions javaOptions) throws InvalidConfigurationException { this.commandLineJavacFlags = ImmutableList.copyOf(JavaHelper.tokenizeJavaOptions(javaOptions.javacOpts)); this.javaLauncherLabel = javaOptions.javaLauncher; @@ -238,72 +234,6 @@ this.pluginList = ImmutableList.copyOf(javaOptions.pluginList); } - @AutoCodec.Instantiator - JavaConfiguration( - ImmutableList<String> commandLineJavacFlags, - Label javaLauncherLabel, - boolean useIjars, - boolean useHeaderCompilation, - boolean generateJavaDeps, - boolean strictDepsJavaProtos, - boolean protoGeneratedStrictDeps, - boolean isJavaProtoExportsEnabled, - OneVersionEnforcementLevel enforceOneVersion, - boolean enforceOneVersionOnJavaTests, - ImportDepsCheckingLevel importDepsCheckingLevel, - boolean allowRuntimeDepsOnNeverLink, - JavaClasspathMode javaClasspath, - ImmutableList<String> defaultJvmFlags, - ImmutableList<String> checkedConstraints, - StrictDepsMode strictJavaDeps, - String fixDepsTool, - Label proguardBinary, - ImmutableList<Label> extraProguardSpecs, - TriState bundleTranslations, - ImmutableList<Label> translationTargets, - JavaOptimizationMode javaOptimizationMode, - ImmutableMap<String, Optional<Label>> bytecodeOptimizers, - Label toolchainLabel, - Label runtimeLabel, - boolean explicitJavaTestDeps, - boolean experimentalTestRunner, - boolean jplPropagateCcLinkParamsStore, - boolean addTestSupportToCompileTimeDeps, - ImmutableList<Label> pluginList, - boolean useLegacyBazelJavaTest) { - this.commandLineJavacFlags = commandLineJavacFlags; - this.javaLauncherLabel = javaLauncherLabel; - this.useIjars = useIjars; - this.useHeaderCompilation = useHeaderCompilation; - this.generateJavaDeps = generateJavaDeps; - this.strictDepsJavaProtos = strictDepsJavaProtos; - this.protoGeneratedStrictDeps = protoGeneratedStrictDeps; - this.isJavaProtoExportsEnabled = isJavaProtoExportsEnabled; - this.enforceOneVersion = enforceOneVersion; - this.enforceOneVersionOnJavaTests = enforceOneVersionOnJavaTests; - this.importDepsCheckingLevel = importDepsCheckingLevel; - this.allowRuntimeDepsOnNeverLink = allowRuntimeDepsOnNeverLink; - this.javaClasspath = javaClasspath; - this.defaultJvmFlags = defaultJvmFlags; - this.checkedConstraints = checkedConstraints; - this.strictJavaDeps = strictJavaDeps; - this.fixDepsTool = fixDepsTool; - this.proguardBinary = proguardBinary; - this.extraProguardSpecs = extraProguardSpecs; - this.bundleTranslations = bundleTranslations; - this.translationTargets = translationTargets; - this.javaOptimizationMode = javaOptimizationMode; - this.bytecodeOptimizers = bytecodeOptimizers; - this.toolchainLabel = toolchainLabel; - this.runtimeLabel = runtimeLabel; - this.explicitJavaTestDeps = explicitJavaTestDeps; - this.experimentalTestRunner = experimentalTestRunner; - this.jplPropagateCcLinkParamsStore = jplPropagateCcLinkParamsStore; - this.addTestSupportToCompileTimeDeps = addTestSupportToCompileTimeDeps; - this.pluginList = pluginList; - this.useLegacyBazelJavaTest = useLegacyBazelJavaTest; - } - @Override // TODO(bazel-team): this is the command-line passed options, we should remove from skylark // probably.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java index ab1364f..fd76062 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/J2ObjcConfiguration.java
@@ -26,7 +26,6 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.apple.J2ObjcConfigurationApi; import java.util.Collections; import javax.annotation.Nullable; @@ -36,7 +35,6 @@ * configuration fragment is used by Java rules that can be transpiled (specifically, J2ObjCAspects * thereof). */ -@AutoCodec @Immutable public class J2ObjcConfiguration extends Fragment implements J2ObjcConfigurationApi { /** @@ -93,28 +91,16 @@ private final boolean experimentalJ2ObjcHeaderMap; @Nullable private final Label deadCodeReport; - J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) { - this( + private J2ObjcConfiguration(J2ObjcCommandLineOptions j2ObjcOptions) { + this.translationFlags = ImmutableList.<String>builder() .addAll(J2OBJC_DEFAULT_TRANSLATION_FLAGS) .addAll(j2ObjcOptions.translationFlags) .addAll(J2OBJC_ALWAYS_ON_TRANSLATION_FLAGS) - .build(), - j2ObjcOptions.removeDeadCode, - j2ObjcOptions.experimentalJ2ObjcHeaderMap, - j2ObjcOptions.deadCodeReport); - } - - @AutoCodec.Instantiator - J2ObjcConfiguration( - ImmutableList<String> translationFlags, - boolean removeDeadCode, - boolean experimentalJ2ObjcHeaderMap, - Label deadCodeReport) { - this.translationFlags = translationFlags; - this.removeDeadCode = removeDeadCode; - this.experimentalJ2ObjcHeaderMap = experimentalJ2ObjcHeaderMap; - this.deadCodeReport = deadCodeReport; + .build(); + this.removeDeadCode = j2ObjcOptions.removeDeadCode; + this.experimentalJ2ObjcHeaderMap = j2ObjcOptions.experimentalJ2ObjcHeaderMap; + this.deadCodeReport = j2ObjcOptions.deadCodeReport; } /**
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java index 4f0e5e1..49c5994 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcConfiguration.java
@@ -24,12 +24,10 @@ import com.google.devtools.build.lib.rules.apple.ApplePlatform.PlatformType; import com.google.devtools.build.lib.rules.apple.DottedVersion; import com.google.devtools.build.lib.rules.cpp.HeaderDiscovery; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkbuildapi.apple.ObjcConfigurationApi; import javax.annotation.Nullable; /** A compiler configuration containing flags required for Objective-C compilation. */ -@AutoCodec @Immutable public class ObjcConfiguration extends BuildConfiguration.Fragment implements ObjcConfigurationApi<PlatformType> { @@ -112,60 +110,6 @@ this.strictObjcModuleMaps = objcOptions.strictObjcModuleMaps; } - @AutoCodec.Instantiator - ObjcConfiguration( - DottedVersion iosSimulatorVersion, - String iosSimulatorDevice, - DottedVersion watchosSimulatorVersion, - String watchosSimulatorDevice, - DottedVersion tvosSimulatorVersion, - String tvosSimulatorDevice, - boolean generateDsym, - boolean generateLinkmap, - boolean runMemleaks, - ImmutableList<String> copts, - CompilationMode compilationMode, - ImmutableList<String> fastbuildOptions, - boolean enableBinaryStripping, - boolean moduleMapsEnabled, - String signingCertName, - boolean debugWithGlibcxx, - Label extraEntitlements, - boolean deviceDebugEntitlements, - boolean enableAppleBinaryNativeProtos, - HeaderDiscovery.DotdPruningMode dotdPruningPlan, - boolean experimentalHeaderThinning, - int objcHeaderThinningPartitionSize, - Label objcHeaderScannerTool, - Label appleSdk, - boolean strictObjcModuleMaps) { - this.iosSimulatorVersion = iosSimulatorVersion; - this.iosSimulatorDevice = iosSimulatorDevice; - this.watchosSimulatorVersion = watchosSimulatorVersion; - this.watchosSimulatorDevice = watchosSimulatorDevice; - this.tvosSimulatorVersion = tvosSimulatorVersion; - this.tvosSimulatorDevice = tvosSimulatorDevice; - this.generateDsym = generateDsym; - this.generateLinkmap = generateLinkmap; - this.runMemleaks = runMemleaks; - this.copts = copts; - this.compilationMode = compilationMode; - this.fastbuildOptions = fastbuildOptions; - this.enableBinaryStripping = enableBinaryStripping; - this.moduleMapsEnabled = moduleMapsEnabled; - this.signingCertName = signingCertName; - this.debugWithGlibcxx = debugWithGlibcxx; - this.extraEntitlements = extraEntitlements; - this.deviceDebugEntitlements = deviceDebugEntitlements; - this.enableAppleBinaryNativeProtos = enableAppleBinaryNativeProtos; - this.dotdPruningPlan = dotdPruningPlan; - this.experimentalHeaderThinning = experimentalHeaderThinning; - this.objcHeaderThinningPartitionSize = objcHeaderThinningPartitionSize; - this.objcHeaderScannerTool = objcHeaderScannerTool; - this.appleSdk = appleSdk; - this.strictObjcModuleMaps = strictObjcModuleMaps; - } - /** * Returns the type of device (e.g. 'iPhone 6') to simulate when running on the simulator. */
diff --git a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java index 8731315..60f8281 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/proto/ProtoConfiguration.java
@@ -25,7 +25,6 @@ import com.google.devtools.build.lib.analysis.config.InvalidConfigurationException; import com.google.devtools.build.lib.cmdline.Label; 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.skylarkbuildapi.ProtoConfigurationApi; import com.google.devtools.common.options.Converters; import com.google.devtools.common.options.Option; @@ -35,7 +34,6 @@ import java.util.List; /** Configuration for Protocol Buffer Libraries. */ -@AutoCodec @Immutable // This module needs to be exported to Skylark so it can be passed as a mandatory host/target // configuration fragment in aspect definitions. @@ -201,8 +199,7 @@ private final ImmutableList<String> ccProtoLibrarySourceSuffixes; private final Options options; - @AutoCodec.Instantiator - public ProtoConfiguration(Options options) { + private ProtoConfiguration(Options options) { this.protocOpts = ImmutableList.copyOf(options.protocOpts); this.ccProtoLibraryHeaderSuffixes = ImmutableList.copyOf(options.ccProtoLibraryHeaderSuffixes); this.ccProtoLibrarySourceSuffixes = ImmutableList.copyOf(options.ccProtoLibrarySourceSuffixes);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java index 4118856..2323f46 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java +++ b/src/main/java/com/google/devtools/build/lib/rules/python/PythonConfiguration.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.events.Event; import com.google.devtools.build.lib.events.EventHandler; -import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; import com.google.devtools.build.lib.skylarkinterface.SkylarkModuleCategory; import com.google.devtools.build.lib.util.OS; @@ -32,7 +31,6 @@ * The configuration fragment containing information about the various pieces of infrastructure * needed to run Python compilations. */ -@AutoCodec @Immutable @SkylarkModule( name = "py", @@ -44,7 +42,6 @@ private final TriState buildPythonZip; private final boolean buildTransitiveRunfilesTrees; - @AutoCodec.Instantiator PythonConfiguration( PythonVersion defaultPythonVersion, boolean ignorePythonVersionAttribute,
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java b/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java deleted file mode 100644 index 61e94f9..0000000 --- a/src/test/java/com/google/devtools/build/lib/rules/apple/AppleConfigurationSerializationTest.java +++ /dev/null
@@ -1,80 +0,0 @@ -// Copyright 2017 The Bazel Authors. All rights reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package com.google.devtools.build.lib.rules.apple; - -import com.google.common.collect.ImmutableList; -import com.google.devtools.build.lib.analysis.config.BuildOptions; -import com.google.devtools.build.lib.cmdline.Label; -import com.google.devtools.build.lib.skyframe.serialization.testutils.SerializationTester; -import com.google.devtools.common.options.OptionsParsingException; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.junit.runners.JUnit4; - -/** Tests for serialization of {@link AppleConfiguration}. */ -@RunWith(JUnit4.class) -public class AppleConfigurationSerializationTest { - - @Test - public void testCodec() throws Exception { - new SerializationTester(getSubjects()).runTests(); - } - - @Test - public void optionsSerialization() throws Exception { - new SerializationTester( - BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class)) - .get(AppleCommandLineOptions.class)) - .runTests(); - } - - private static ImmutableList<AppleConfiguration> getSubjects() { - AppleCommandLineOptions firstOptions = new AppleCommandLineOptions(); - firstOptions.mandatoryMinimumVersion = false; - firstOptions.iosSdkVersion = DottedVersion.fromString("2.0"); - firstOptions.watchOsSdkVersion = DottedVersion.fromString("3.0"); - firstOptions.tvOsSdkVersion = DottedVersion.fromString("4.0"); - firstOptions.macOsSdkVersion = DottedVersion.fromString("5.0"); - firstOptions.iosMinimumOs = DottedVersion.fromString("6.1beta3.7"); - firstOptions.watchosMinimumOs = DottedVersion.fromString("7.0"); - firstOptions.tvosMinimumOs = DottedVersion.fromString("8.0"); - firstOptions.macosMinimumOs = DottedVersion.fromString("9.0"); - firstOptions.iosCpu = "ioscpu1"; - firstOptions.appleCrosstoolTop = Label.parseAbsoluteUnchecked("//apple/crosstool:top"); - firstOptions.applePlatformType = ApplePlatform.PlatformType.WATCHOS; - firstOptions.appleSplitCpu = "appleSplitCpu1"; - firstOptions.configurationDistinguisher = - AppleConfiguration.ConfigurationDistinguisher.APPLEBIN_TVOS; - firstOptions.iosMultiCpus = ImmutableList.of("iosMultiCpu1", "iosMultiCpu2"); - firstOptions.watchosCpus = ImmutableList.of("watchosCpu1", "watchosCpu2", "watchosCpu3"); - firstOptions.tvosCpus = ImmutableList.of("tvosCpu1"); - firstOptions.macosCpus = ImmutableList.of(); - firstOptions.defaultProvisioningProfile = - Label.parseAbsoluteUnchecked("//default/provisioning"); - firstOptions.xcodeVersionConfig = Label.parseAbsoluteUnchecked("//xcode/version:config"); - firstOptions.appleBitcodeMode = AppleCommandLineOptions.AppleBitcodeMode.EMBEDDED_MARKERS; - firstOptions.xcodeVersion = "1.0"; - try { - return ImmutableList.of( - new AppleConfiguration(firstOptions, "iosCpuArg"), - AppleConfiguration.create( - BuildOptions.of(ImmutableList.of(AppleCommandLineOptions.class)) - .get(AppleCommandLineOptions.class), - "another cpu")); - } catch (OptionsParsingException e) { - throw new IllegalStateException(e); - } - } -}
diff --git a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD index 73c02b1..badd79c 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD +++ b/src/test/java/com/google/devtools/build/lib/rules/apple/BUILD
@@ -10,40 +10,9 @@ visibility = ["//src/test/java/com/google/devtools/build/lib:__pkg__"], ) -SERIALIZATION_TEST_SRCS = ["AppleConfigurationSerializationTest.java"] - -java_library( - name = "AppleConfigurationSerializationTest_lib", - testonly = 1, - srcs = SERIALIZATION_TEST_SRCS, - deps = [ - "//src/main/java/com/google/devtools/build/lib:build-base", - "//src/main/java/com/google/devtools/build/lib/cmdline", - "//src/main/java/com/google/devtools/build/lib/rules/apple", - "//src/main/java/com/google/devtools/build/lib/skyframe/serialization", - "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/testutils", - "//src/main/java/com/google/devtools/common/options", - "//third_party:guava", - "//third_party:junit4", - "//third_party/protobuf:protobuf_java", - ], -) - -java_test( - name = "AppleConfigurationSerializationTest", - test_class = "com.google.devtools.build.lib.AllTests", - runtime_deps = [ - ":AppleConfigurationSerializationTest_lib", - "//src/test/java/com/google/devtools/build/lib:test_runner", - ], -) - java_library( name = "AppleRulesTests_lib", - srcs = glob( - ["*.java"], - exclude = SERIALIZATION_TEST_SRCS, - ), + srcs = glob(["*.java"]), deps = [ "//src/main/java/com/google/devtools/build/lib:build-base", "//src/main/java/com/google/devtools/build/lib:packages-internal",