aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com
diff options
context:
space:
mode:
authorGravatar Googler <noreply@google.com>2017-05-22 17:32:10 +0200
committerGravatar Irina Iancu <elenairina@google.com>2017-05-22 18:05:38 +0200
commit512d56280adc6ef7639fcd4801e31fc513a26bb7 (patch)
tree3782ea7136c0e6e4a1b7fdedf410c7606f706b6c /src/main/java/com
parent64e952ca564acc149969cc20256c10d0e3fff7f8 (diff)
Extract determining which manifest merger to use (legacy v android) to a separate method. This is so that android_local_test won't need access to the AndroidConfiguration fragment.
RELNOTES: None PiperOrigin-RevId: 156740056
Diffstat (limited to 'src/main/java/com')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java31
1 files changed, 20 insertions, 11 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
index 1821c4b4b4..a4b33738ef 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java
@@ -205,18 +205,13 @@ public final class ApplicationManifest {
}
public ApplicationManifest mergeWith(RuleContext ruleContext, ResourceDependencies resourceDeps) {
- Map<Artifact, Label> mergeeManifests = getMergeeManifests(resourceDeps.getResources());
+ boolean legacy = useLegacyMerging(ruleContext);
+ return mergeWith(ruleContext, resourceDeps, legacy);
+ }
- boolean legacy = true;
- if (ruleContext.isLegalFragment(AndroidConfiguration.class)
- && ruleContext.getRule().isAttrDefined("manifest_merger", STRING)) {
- AndroidManifestMerger merger = AndroidManifestMerger.fromString(
- ruleContext.attributes().get("manifest_merger", STRING));
- if (merger == null) {
- merger = ruleContext.getFragment(AndroidConfiguration.class).getManifestMerger();
- }
- legacy = merger == AndroidManifestMerger.LEGACY;
- }
+ public ApplicationManifest mergeWith(
+ RuleContext ruleContext, ResourceDependencies resourceDeps, boolean legacy) {
+ Map<Artifact, Label> mergeeManifests = getMergeeManifests(resourceDeps.getResources());
if (legacy) {
if (!mergeeManifests.isEmpty()) {
@@ -250,6 +245,20 @@ public final class ApplicationManifest {
return this;
}
+ private boolean useLegacyMerging(RuleContext ruleContext) {
+ boolean legacy = true;
+ if (ruleContext.isLegalFragment(AndroidConfiguration.class)
+ && ruleContext.getRule().isAttrDefined("manifest_merger", STRING)) {
+ AndroidManifestMerger merger = AndroidManifestMerger.fromString(
+ ruleContext.attributes().get("manifest_merger", STRING));
+ if (merger == null) {
+ merger = ruleContext.getFragment(AndroidConfiguration.class).getManifestMerger();
+ }
+ legacy = merger == AndroidManifestMerger.LEGACY;
+ }
+ return legacy;
+ }
+
private static Map<Artifact, Label> getMergeeManifests(
Iterable<ResourceContainer> resourceContainers) {
ImmutableSortedMap.Builder<Artifact, Label> builder =