diff options
author | asteinb <asteinb@google.com> | 2018-08-07 11:47:49 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-08-07 11:49:40 -0700 |
commit | db8a2e8a652b8900dce127b30d3d20bfa97a2052 (patch) | |
tree | 91746806d3fdd841178a10227d2ac25d2a7e848e /src/main/java/com/google/devtools/build/lib/rules | |
parent | f12d58509f3e41b253205533b211ee226e99ad65 (diff) |
Remove analysis code for old resource processing pipeline
This code should all be unused now. Some code it calls into will be removed in
the next changes.
RELNOTES: none
PiperOrigin-RevId: 207753966
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
10 files changed, 135 insertions, 310 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java index 46f391878e..ab257ac612 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AarImport.java @@ -96,47 +96,28 @@ public class AarImport implements RuleConfiguredTargetFactory { ruleContext.registerAction( createAarResourcesExtractorActions(ruleContext, aar, resources, assets)); - final AndroidDataContext dataContext = androidSemantics.makeContextForNative(ruleContext); - final ResourceApk resourceApk; - if (AndroidResources.decoupleDataProcessing(dataContext)) { - StampedAndroidManifest manifest = AndroidManifest.forAarImport(androidManifestArtifact); - - boolean neverlink = JavaCommon.isNeverLink(ruleContext); - ValidatedAndroidResources validatedResources = - AndroidResources.forAarImport(resources) - .process( - ruleContext, - dataContext, - manifest, - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), - neverlink); - MergedAndroidAssets mergedAssets = - AndroidAssets.forAarImport(assets) - .process( - dataContext, - AssetDependencies.fromRuleDeps(ruleContext, neverlink), - AndroidAaptVersion.chooseTargetAaptVersion(ruleContext)); - - resourceApk = ResourceApk.of(validatedResources, mergedAssets, null, null); - } else { - ApplicationManifest androidManifest = - ApplicationManifest.fromExplicitManifest(ruleContext, androidManifestArtifact); - - Artifact resourcesZip = - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP); - - resourceApk = - androidManifest.packAarWithDataAndResources( - ruleContext, - dataContext, - AndroidAssets.forAarImport(assets), - AndroidResources.forAarImport(resources), - ResourceDependencies.fromRuleDeps(ruleContext, JavaCommon.isNeverLink(ruleContext)), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_R_TXT), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_LOCAL_SYMBOLS), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_PROCESSED_MANIFEST), - resourcesZip); - } + AndroidDataContext dataContext = androidSemantics.makeContextForNative(ruleContext); + StampedAndroidManifest manifest = AndroidManifest.forAarImport(androidManifestArtifact); + + boolean neverlink = JavaCommon.isNeverLink(ruleContext); + + ValidatedAndroidResources validatedResources = + AndroidResources.forAarImport(resources) + .process( + ruleContext, + dataContext, + manifest, + DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), + neverlink); + + MergedAndroidAssets mergedAssets = + AndroidAssets.forAarImport(assets) + .process( + dataContext, + AssetDependencies.fromRuleDeps(ruleContext, neverlink), + AndroidAaptVersion.chooseTargetAaptVersion(ruleContext)); + + ResourceApk resourceApk = ResourceApk.of(validatedResources, mergedAssets, null, null); // There isn't really any use case for building an aar_import target on its own, so the files to // build could be empty. The resources zip and merged jars are added here as a sanity check for diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java index 90c9c6f303..e66fca7247 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java @@ -183,85 +183,47 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { AndroidResources.validateRuleContext(ruleContext); final AndroidDataContext dataContext = androidSemantics.makeContextForNative(ruleContext); - final ApplicationManifest applicationManifest; - final ResourceApk resourceApk; - - if (AndroidResources.decoupleDataProcessing(dataContext)) { - StampedAndroidManifest manifest = - AndroidManifest.fromAttributes(ruleContext, dataContext, androidSemantics) - .mergeWithDeps( - dataContext, - androidSemantics, - resourceDeps, - ApplicationManifest.getManifestValues(ruleContext), - ApplicationManifest.useLegacyMerging(ruleContext)); - applicationManifest = - ApplicationManifest.fromExplicitManifest(ruleContext, manifest.getManifest()); - - AndroidAaptVersion aaptVersion = AndroidAaptVersion.chooseTargetAaptVersion(ruleContext); - resourceApk = - ProcessedAndroidData.processBinaryDataFrom( - dataContext, - ruleContext, - manifest, - /* conditionalKeepRules = */ shouldShrinkResourceCycles( - dataContext.getAndroidConfig(), ruleContext, shrinkResources), - applicationManifest.getManifestValues(), - aaptVersion, - AndroidResources.from(ruleContext, "resource_files"), - AndroidAssets.from(ruleContext), - resourceDeps, - AssetDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false), - ResourceFilterFactory.fromRuleContextAndAttrs(ruleContext), - ruleContext.getExpander().withDataLocations().tokenized("nocompress_extensions"), - ruleContext.attributes().get("crunch_png", Type.BOOLEAN), - ruleContext.attributes().isAttributeValueExplicitlySpecified("feature_of") - ? ruleContext - .getPrerequisite("feature_of", Mode.TARGET, ApkInfo.PROVIDER) - .getApk() - : null, - ruleContext.attributes().isAttributeValueExplicitlySpecified("feature_after") - ? ruleContext - .getPrerequisite("feature_after", Mode.TARGET, ApkInfo.PROVIDER) - .getApk() - : null, - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig())) - .generateRClass(dataContext, aaptVersion); - } else { - applicationManifest = - androidSemantics - .getManifestForRule(ruleContext) - .mergeWith(ruleContext, dataContext, androidSemantics, resourceDeps); - - Artifact featureOfArtifact = - ruleContext.attributes().isAttributeValueExplicitlySpecified("feature_of") - ? ruleContext.getPrerequisite("feature_of", Mode.TARGET, ApkInfo.PROVIDER).getApk() - : null; - Artifact featureAfterArtifact = - ruleContext.attributes().isAttributeValueExplicitlySpecified("feature_after") - ? ruleContext.getPrerequisite("feature_after", Mode.TARGET, ApkInfo.PROVIDER).getApk() - : null; - resourceApk = - applicationManifest.packBinaryWithDataAndResources( - ruleContext, - dataContext, - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_APK), - resourceDeps, - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_R_TXT), - ResourceFilterFactory.fromRuleContextAndAttrs(ruleContext), - ruleContext.getExpander().withDataLocations().tokenized("nocompress_extensions"), - ruleContext.attributes().get("crunch_png", Type.BOOLEAN), - ProguardHelper.getProguardConfigArtifact(ruleContext, ""), - createMainDexProguardSpec(ruleContext.getLabel(), ruleContext), - shouldShrinkResourceCycles( - dataContext.getAndroidConfig(), ruleContext, shrinkResources), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_PROCESSED_MANIFEST), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP), - featureOfArtifact, - featureAfterArtifact); - } + StampedAndroidManifest manifest = + AndroidManifest.fromAttributes(ruleContext, dataContext, androidSemantics) + .mergeWithDeps( + dataContext, + androidSemantics, + resourceDeps, + ApplicationManifest.getManifestValues(ruleContext), + ApplicationManifest.useLegacyMerging(ruleContext)); + final ApplicationManifest applicationManifest = + ApplicationManifest.fromExplicitManifest(ruleContext, manifest.getManifest()); + + AndroidAaptVersion aaptVersion = AndroidAaptVersion.chooseTargetAaptVersion(ruleContext); + final ResourceApk resourceApk = + ProcessedAndroidData.processBinaryDataFrom( + dataContext, + ruleContext, + manifest, + /* conditionalKeepRules = */ shouldShrinkResourceCycles( + dataContext.getAndroidConfig(), ruleContext, shrinkResources), + applicationManifest.getManifestValues(), + aaptVersion, + AndroidResources.from(ruleContext, "resource_files"), + AndroidAssets.from(ruleContext), + resourceDeps, + AssetDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false), + ResourceFilterFactory.fromRuleContextAndAttrs(ruleContext), + ruleContext.getExpander().withDataLocations().tokenized("nocompress_extensions"), + ruleContext.attributes().get("crunch_png", Type.BOOLEAN), + ruleContext.attributes().isAttributeValueExplicitlySpecified("feature_of") + ? ruleContext + .getPrerequisite("feature_of", Mode.TARGET, ApkInfo.PROVIDER) + .getApk() + : null, + ruleContext.attributes().isAttributeValueExplicitlySpecified("feature_after") + ? ruleContext + .getPrerequisite("feature_after", Mode.TARGET, ApkInfo.PROVIDER) + .getApk() + : null, + DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig())) + .generateRClass(dataContext, aaptVersion); ruleContext.assertNoErrors(); @@ -339,7 +301,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory { MobileInstallResourceApks mobileInstallResourceApks = AndroidBinaryMobileInstall.createMobileInstallResourceApks( - ruleContext, dataContext, applicationManifest, resourceDeps); + ruleContext, dataContext, applicationManifest); return createAndroidBinary( ruleContext, diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java index 88877f93ec..348698f062 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinaryMobileInstall.java @@ -38,8 +38,6 @@ import com.google.devtools.build.lib.rules.java.JavaCompilationArgsProvider; import com.google.devtools.build.lib.rules.java.JavaInfo; import com.google.devtools.build.lib.rules.java.JavaSemantics; import com.google.devtools.build.lib.rules.java.JavaTargetAttributes; -import com.google.devtools.build.lib.rules.java.ProguardHelper; -import com.google.devtools.build.lib.syntax.Type; import java.util.Map; /** Encapsulates the logic for creating actions for mobile-install. */ @@ -60,70 +58,41 @@ public final class AndroidBinaryMobileInstall { static MobileInstallResourceApks createMobileInstallResourceApks( RuleContext ruleContext, AndroidDataContext dataContext, - ApplicationManifest applicationManifest, - ResourceDependencies resourceDeps) + ApplicationManifest applicationManifest) throws RuleErrorException, InterruptedException { final ResourceApk incrementalResourceApk; final ResourceApk splitResourceApk; - if (AndroidResources.decoupleDataProcessing(dataContext)) { - StampedAndroidManifest manifest = - new StampedAndroidManifest( - applicationManifest.getManifest(), /* pkg = */ null, /* exported = */ true); - - incrementalResourceApk = - ProcessedAndroidData.processIncrementalBinaryDataFrom( - ruleContext, - dataContext, - manifest.addMobileInstallStubApplication(ruleContext), - ruleContext.getImplicitOutputArtifact( - AndroidRuleClasses.ANDROID_INCREMENTAL_RESOURCES_APK), - getMobileInstallArtifact(ruleContext, "merged_incremental_resources.bin"), - "incremental", - applicationManifest.getManifestValues()) - // Intentionally skip building an R class JAR - incremental binaries handle this - // separately. - .withValidatedResources(null); - - splitResourceApk = - ProcessedAndroidData.processIncrementalBinaryDataFrom( - ruleContext, - dataContext, - manifest.createSplitManifest(ruleContext, "android_resources", false), - getMobileInstallArtifact(ruleContext, "android_resources.ap_"), - getMobileInstallArtifact(ruleContext, "merged_split_resources.bin"), - "incremental_split", - applicationManifest.getManifestValues()) - // Intentionally skip building an R class JAR - incremental binaries handle this - // separately. - .withValidatedResources(null); - } else { - incrementalResourceApk = - applicationManifest - .addMobileInstallStubApplication(ruleContext) - .packIncrementalBinaryWithDataAndResources( - ruleContext, - dataContext, - ruleContext.getImplicitOutputArtifact( - AndroidRuleClasses.ANDROID_INCREMENTAL_RESOURCES_APK), - resourceDeps, - ruleContext.getExpander().withDataLocations().tokenized("nocompress_extensions"), - ruleContext.attributes().get("crunch_png", Type.BOOLEAN), - ProguardHelper.getProguardConfigArtifact(ruleContext, "incremental")); - ruleContext.assertNoErrors(); - - splitResourceApk = - applicationManifest - .createSplitManifest(ruleContext, "android_resources", false) - .packIncrementalBinaryWithDataAndResources( - ruleContext, - dataContext, - getMobileInstallArtifact(ruleContext, "android_resources.ap_"), - resourceDeps, - ruleContext.getExpander().withDataLocations().tokenized("nocompress_extensions"), - ruleContext.attributes().get("crunch_png", Type.BOOLEAN), - ProguardHelper.getProguardConfigArtifact(ruleContext, "incremental_split")); - } + StampedAndroidManifest manifest = + new StampedAndroidManifest( + applicationManifest.getManifest(), /* pkg = */ null, /* exported = */ true); + + incrementalResourceApk = + ProcessedAndroidData.processIncrementalBinaryDataFrom( + ruleContext, + dataContext, + manifest.addMobileInstallStubApplication(ruleContext), + ruleContext.getImplicitOutputArtifact( + AndroidRuleClasses.ANDROID_INCREMENTAL_RESOURCES_APK), + getMobileInstallArtifact(ruleContext, "merged_incremental_resources.bin"), + "incremental", + applicationManifest.getManifestValues()) + // Intentionally skip building an R class JAR - incremental binaries handle this + // separately. + .withValidatedResources(null); + + splitResourceApk = + ProcessedAndroidData.processIncrementalBinaryDataFrom( + ruleContext, + dataContext, + manifest.createSplitManifest(ruleContext, "android_resources", false), + getMobileInstallArtifact(ruleContext, "android_resources.ap_"), + getMobileInstallArtifact(ruleContext, "merged_split_resources.bin"), + "incremental_split", + applicationManifest.getManifestValues()) + // Intentionally skip building an R class JAR - incremental binaries handle this + // separately. + .withValidatedResources(null); ruleContext.assertNoErrors(); return new MobileInstallResourceApks(incrementalResourceApk, splitResourceApk); diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java index f0eaf20299..ffa414f9e1 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDataConverter.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.rules.android; +import com.google.common.annotations.VisibleForTesting; import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.actions.CommandLineItem.ParametrizedMapFn; @@ -169,7 +170,8 @@ public class AndroidDataConverter<T> extends ParametrizedMapFn<T> { } } - static String rootsToString(ImmutableList<PathFragment> roots) { + @VisibleForTesting + public static String rootsToString(ImmutableList<PathFragment> roots) { return roots.stream().map(PathFragment::toString).collect(Collectors.joining("#")); } } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java index 963ac63576..71cfb3b258 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLibrary.java @@ -156,53 +156,32 @@ public abstract class AndroidLibrary implements RuleConfiguredTargetFactory { // other artifacts. final ResourceApk resourceApk; if (definesLocalResources) { - // By decoupling processing of manifest, resources and assets, we get a higher degree of - // action parallelism. - if (androidConfig.decoupleDataProcessing()) { - StampedAndroidManifest manifest = - AndroidManifest.fromAttributes(ruleContext, dataContext, androidSemantics) - .stamp(dataContext); - - ValidatedAndroidResources resources = - AndroidResources.from(ruleContext, "resource_files") - .process( - ruleContext, - dataContext, - manifest, - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), - isNeverLink); - - MergedAndroidAssets assets = - AndroidAssets.from(ruleContext) - .process( - dataContext, - assetDeps, - AndroidAaptVersion.chooseTargetAaptVersion(ruleContext)); - - resourceApk = ResourceApk.of(resources, assets, null, null); - } else { - // Monolithically process all Android data in the same pipeline. - ApplicationManifest applicationManifest = - androidSemantics - .getManifestForRule(ruleContext) - .renamePackage(dataContext, AndroidCommon.getJavaPackage(ruleContext)); - resourceApk = - applicationManifest.packLibraryWithDataAndResources( - ruleContext, - dataContext, - resourceDeps, - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_R_TXT), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_MERGED_SYMBOLS), - ruleContext.getImplicitOutputArtifact( - AndroidRuleClasses.ANDROID_PROCESSED_MANIFEST), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP), - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig())); - } + StampedAndroidManifest manifest = + AndroidManifest.fromAttributes(ruleContext, dataContext, androidSemantics) + .stamp(dataContext); + + ValidatedAndroidResources resources = + AndroidResources.from(ruleContext, "resource_files") + .process( + ruleContext, + dataContext, + manifest, + DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), + isNeverLink); + + MergedAndroidAssets assets = + AndroidAssets.from(ruleContext) + .process( + dataContext, assetDeps, AndroidAaptVersion.chooseTargetAaptVersion(ruleContext)); + + resourceApk = ResourceApk.of(resources, assets, null, null); + if (ruleContext.hasErrors()) { return null; } } else { - // No local resources, but we still need to process transitive resources. + // No local resources, but we still need to process transitive resources in order to export an + // aar. resourceApk = ResourceApk.processFromTransitiveLibraryData( dataContext, diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java index 6e6743ce0e..5700cf35d0 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidLocalTestBase.java @@ -60,7 +60,6 @@ import com.google.devtools.build.lib.rules.java.JavaSourceJarsProvider; import com.google.devtools.build.lib.rules.java.JavaTargetAttributes; import com.google.devtools.build.lib.rules.java.JavaToolchainProvider; import com.google.devtools.build.lib.rules.java.OneVersionCheckActionBuilder; -import com.google.devtools.build.lib.rules.java.ProguardHelper; import com.google.devtools.build.lib.rules.java.proto.GeneratedExtensionRegistryProvider; import com.google.devtools.build.lib.syntax.Type; import com.google.devtools.build.lib.util.OS; @@ -94,49 +93,18 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor JavaTargetAttributes.Builder attributesBuilder = javaCommon.initCommon(); final AndroidDataContext dataContext = androidSemantics.makeContextForNative(ruleContext); - final ResourceApk resourceApk; - - if (AndroidResources.decoupleDataProcessing(dataContext)) { - resourceApk = - buildResourceApk( - dataContext, - androidSemantics, - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), - AndroidManifest.fromAttributes(ruleContext, dataContext), - AndroidResources.from(ruleContext, "resource_files"), - AndroidAssets.from(ruleContext), - ResourceDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false), - AssetDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false), - ApplicationManifest.getManifestValues(ruleContext), - AndroidAaptVersion.chooseTargetAaptVersion(ruleContext)); - } else { - // Create the final merged manifest - ResourceDependencies resourceDependencies = - ResourceDependencies.fromRuleDeps(ruleContext, /* neverlink= */ false); - - ApplicationManifest applicationManifest = - getApplicationManifest(ruleContext, dataContext, resourceDependencies); - - // Create the final merged R class - resourceApk = - applicationManifest.packBinaryWithDataAndResources( - ruleContext, - dataContext, - DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_APK), - resourceDependencies, - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_R_TXT), - ResourceFilterFactory.fromRuleContextAndAttrs(ruleContext), - ImmutableList.of(), /* list of uncompressed extensions */ - false, /* crunch png */ - ProguardHelper.getProguardConfigArtifact(ruleContext, ""), - /* mainDexProguardCfg= */ null, - /* conditionalKeepRules= */ false, - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_PROCESSED_MANIFEST), - ruleContext.getImplicitOutputArtifact(AndroidRuleClasses.ANDROID_RESOURCES_ZIP), - null, /* featureOfArtifact */ - null /* featureAfterArtifact */); - } + final ResourceApk resourceApk = + buildResourceApk( + dataContext, + androidSemantics, + DataBinding.contextFrom(ruleContext, dataContext.getAndroidConfig()), + AndroidManifest.fromAttributes(ruleContext, dataContext), + AndroidResources.from(ruleContext, "resource_files"), + AndroidAssets.from(ruleContext), + ResourceDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false), + AssetDependencies.fromRuleDeps(ruleContext, /* neverlink = */ false), + ApplicationManifest.getManifestValues(ruleContext), + AndroidAaptVersion.chooseTargetAaptVersion(ruleContext)); attributesBuilder.addRuntimeClassPathEntry(resourceApk.getResourceJavaClassJar()); @@ -408,38 +376,6 @@ public abstract class AndroidLocalTestBase implements RuleConfiguredTargetFactor .build(); } - /** - * Returns a merged {@link ApplicationManifest} for the rule. The final merged manifest will be - * merged into the manifest provided on the rule, or into a placeholder manifest if one is not - * provided - * - * @throws InterruptedException - * @throws RuleErrorException - */ - private ApplicationManifest getApplicationManifest( - RuleContext ruleContext, - AndroidDataContext dataContext, - ResourceDependencies resourceDependencies) - throws InterruptedException, RuleErrorException { - ApplicationManifest applicationManifest; - - if (AndroidResources.definesAndroidResources(ruleContext.attributes())) { - AndroidResources.validateRuleContext(ruleContext); - ApplicationManifest ruleManifest = - ApplicationManifest.renamedFromRule(ruleContext, dataContext); - applicationManifest = - ruleManifest.mergeWith( - ruleContext, dataContext, createAndroidSemantics(), resourceDependencies); - } else { - // we don't have a manifest, merge like android_library with a stub manifest - ApplicationManifest dummyManifest = ApplicationManifest.generatedManifest(ruleContext); - applicationManifest = - dummyManifest.mergeWith( - ruleContext, dataContext, createAndroidSemantics(), resourceDependencies); - } - return applicationManifest; - } - private static void setUpJavaCommon( JavaCommon common, JavaCompilationHelper helper, diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java index c78533eb43..654397b4bf 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResources.java @@ -102,10 +102,6 @@ public class AndroidResources { validateManifest(ruleContext); } - public static boolean decoupleDataProcessing(AndroidDataContext dataContext) { - return dataContext.getAndroidConfig().decoupleDataProcessing(); - } - /** * Validates that there are no targets with resources in the srcs, as they should not be used with * the Android data logic. @@ -445,7 +441,7 @@ public class AndroidResources { @Override public boolean equals(Object object) { - if (object == null || getClass() != object.getClass()) { + if (!(object instanceof AndroidResources)) { return false; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/MergedAndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/MergedAndroidResources.java index f139a2b457..3ebefa4383 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/MergedAndroidResources.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/MergedAndroidResources.java @@ -168,7 +168,7 @@ public class MergedAndroidResources extends ParsedAndroidResources { @Override public boolean equals(Object object) { - if (!super.equals(object)) { + if (!super.equals(object) || !(object instanceof MergedAndroidResources)) { return false; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java index bfb293577d..501079c72d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ParsedAndroidResources.java @@ -172,7 +172,7 @@ public class ParsedAndroidResources extends AndroidResources @Override public boolean equals(Object object) { - if (!super.equals(object)) { + if (!super.equals(object) || !(object instanceof ParsedAndroidResources)) { return false; } diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java b/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java index 172dcee898..4c151328e9 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java +++ b/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java @@ -170,7 +170,7 @@ public class ValidatedAndroidResources extends MergedAndroidResources @Override public boolean equals(Object object) { - if (!super.equals(object)) { + if (!super.equals(object) || !(object instanceof ValidatedAndroidResources)) { return false; } |