aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar asteinb <asteinb@google.com>2018-08-08 09:52:27 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-08-08 09:54:22 -0700
commit25f112e0eba147f14ac51736c41ced3d6b284b57 (patch)
tree4845449ba4f7be6b6ad5f74340e82ecfcf2fc336 /src
parent30c601dc13d9e1b40a57434c022c888c7578cc56 (diff)
Remove ValidatedAndroidData interface
Now that ValidatedAndroidResources is the only implementation, we can just use that instead. RELNOTES: none PiperOrigin-RevId: 207900844
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidBinary.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java21
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java44
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ApplicationManifest.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/MergedAndroidResources.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java26
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java31
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilter.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java28
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidData.java70
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidResources.java14
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java12
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java56
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java15
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java21
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java2
-rw-r--r--src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java16
21 files changed, 169 insertions, 251 deletions
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 5cede5999f..3c723466f0 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
@@ -834,7 +834,7 @@ public abstract class AndroidBinary implements RuleConfiguredTargetFactory {
static Optional<Artifact> maybeShrinkResources(
AndroidDataContext dataContext,
- ValidatedAndroidData validatedResources,
+ ValidatedAndroidResources validatedResources,
ResourceDependencies resourceDeps,
ImmutableList<Artifact> proguardSpecs,
Artifact proguardOutputJar,
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
index 919c42b10a..d374239a55 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesInfo.java
@@ -27,7 +27,8 @@ import com.google.devtools.build.lib.syntax.SkylarkNestedSet;
/** A provider that supplies ResourceContainers from its transitive closure. */
@Immutable
public class AndroidResourcesInfo extends NativeInfo
- implements AndroidResourcesInfoApi<Artifact, ValidatedAndroidData, ProcessedAndroidManifest> {
+ implements AndroidResourcesInfoApi<
+ Artifact, ValidatedAndroidResources, ProcessedAndroidManifest> {
public static final String PROVIDER_NAME = "AndroidResourcesInfo";
public static final Provider PROVIDER = new Provider();
@@ -52,8 +53,8 @@ public class AndroidResourcesInfo extends NativeInfo
* Transitive information used for resource processing
*/
- private final NestedSet<ValidatedAndroidData> transitiveAndroidResources;
- private final NestedSet<ValidatedAndroidData> directAndroidResources;
+ private final NestedSet<ValidatedAndroidResources> transitiveAndroidResources;
+ private final NestedSet<ValidatedAndroidResources> directAndroidResources;
private final NestedSet<Artifact> transitiveResources;
private final NestedSet<Artifact> transitiveAssets;
private final NestedSet<Artifact> transitiveManifests;
@@ -67,8 +68,8 @@ public class AndroidResourcesInfo extends NativeInfo
Label label,
ProcessedAndroidManifest manifest,
Artifact rTxt,
- NestedSet<ValidatedAndroidData> transitiveAndroidResources,
- NestedSet<ValidatedAndroidData> directAndroidResources,
+ NestedSet<ValidatedAndroidResources> transitiveAndroidResources,
+ NestedSet<ValidatedAndroidResources> directAndroidResources,
NestedSet<Artifact> transitiveResources,
NestedSet<Artifact> transitiveAssets,
NestedSet<Artifact> transitiveManifests,
@@ -109,12 +110,12 @@ public class AndroidResourcesInfo extends NativeInfo
}
@Override
- public NestedSet<ValidatedAndroidData> getTransitiveAndroidResources() {
+ public NestedSet<ValidatedAndroidResources> getTransitiveAndroidResources() {
return transitiveAndroidResources;
}
@Override
- public NestedSet<ValidatedAndroidData> getDirectAndroidResources() {
+ public NestedSet<ValidatedAndroidResources> getDirectAndroidResources() {
return directAndroidResources;
}
@@ -162,7 +163,7 @@ public class AndroidResourcesInfo extends NativeInfo
/** Provider for {@link AndroidResourcesInfo}. */
public static class Provider extends BuiltinProvider<AndroidResourcesInfo>
implements AndroidResourcesInfoApi.AndroidResourcesInfoApiProvider<
- Artifact, ValidatedAndroidData, ProcessedAndroidManifest> {
+ Artifact, ValidatedAndroidResources, ProcessedAndroidManifest> {
private Provider() {
super(PROVIDER_NAME, AndroidResourcesInfo.class);
@@ -188,8 +189,8 @@ public class AndroidResourcesInfo extends NativeInfo
label,
manifest,
rTxt,
- nestedSet(transitiveAndroidResources, ValidatedAndroidData.class),
- nestedSet(directAndroidResources, ValidatedAndroidData.class),
+ nestedSet(transitiveAndroidResources, ValidatedAndroidResources.class),
+ nestedSet(directAndroidResources, ValidatedAndroidResources.class),
nestedSet(transitiveResources, Artifact.class),
nestedSet(transitiveAssets, Artifact.class),
nestedSet(transitiveManifests, Artifact.class),
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
index 10b5f1ae05..6f7bb122e5 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidResourcesProcessorBuilder.java
@@ -46,34 +46,34 @@ public class AndroidResourcesProcessorBuilder {
.build();
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> AAPT2_RESOURCE_DEP_TO_ARG =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
- .withRoots(ValidatedAndroidData::getResourceRoots)
- .withRoots(ValidatedAndroidData::getAssetRoots)
- .withArtifact(ValidatedAndroidData::getManifest)
- .maybeWithArtifact(ValidatedAndroidData::getAapt2RTxt)
- .maybeWithArtifact(ValidatedAndroidData::getCompiledSymbols)
- .maybeWithArtifact(ValidatedAndroidData::getSymbols)
+ static final AndroidDataConverter<ValidatedAndroidResources> AAPT2_RESOURCE_DEP_TO_ARG =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
+ .withRoots(ValidatedAndroidResources::getResourceRoots)
+ .withRoots(ValidatedAndroidResources::getAssetRoots)
+ .withArtifact(ValidatedAndroidResources::getManifest)
+ .maybeWithArtifact(ValidatedAndroidResources::getAapt2RTxt)
+ .maybeWithArtifact(ValidatedAndroidResources::getCompiledSymbols)
+ .maybeWithArtifact(ValidatedAndroidResources::getSymbols)
.build();
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> AAPT2_RESOURCE_DEP_TO_ARG_NO_PARSE =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
- .withRoots(ValidatedAndroidData::getResourceRoots)
- .withRoots(ValidatedAndroidData::getAssetRoots)
- .withArtifact(ValidatedAndroidData::getManifest)
- .maybeWithArtifact(ValidatedAndroidData::getAapt2RTxt)
- .maybeWithArtifact(ValidatedAndroidData::getCompiledSymbols)
+ static final AndroidDataConverter<ValidatedAndroidResources> AAPT2_RESOURCE_DEP_TO_ARG_NO_PARSE =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
+ .withRoots(ValidatedAndroidResources::getResourceRoots)
+ .withRoots(ValidatedAndroidResources::getAssetRoots)
+ .withArtifact(ValidatedAndroidResources::getManifest)
+ .maybeWithArtifact(ValidatedAndroidResources::getAapt2RTxt)
+ .maybeWithArtifact(ValidatedAndroidResources::getCompiledSymbols)
.build();
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> RESOURCE_DEP_TO_ARG =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
- .withRoots(ValidatedAndroidData::getResourceRoots)
- .withRoots(ValidatedAndroidData::getAssetRoots)
- .withArtifact(ValidatedAndroidData::getManifest)
- .maybeWithArtifact(ValidatedAndroidData::getRTxt)
- .maybeWithArtifact(ValidatedAndroidData::getSymbols)
+ static final AndroidDataConverter<ValidatedAndroidResources> RESOURCE_DEP_TO_ARG =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
+ .withRoots(ValidatedAndroidResources::getResourceRoots)
+ .withRoots(ValidatedAndroidResources::getAssetRoots)
+ .withArtifact(ValidatedAndroidResources::getManifest)
+ .maybeWithArtifact(ValidatedAndroidResources::getRTxt)
+ .maybeWithArtifact(ValidatedAndroidResources::getSymbols)
.build();
private ResourceDependencies resourceDependencies = ResourceDependencies.empty();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
index 190f987a51..b07584439e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkApiProvider.java
@@ -97,7 +97,7 @@ public class AndroidSkylarkApiProvider extends SkylarkApiProvider
@Override
public NestedSet<Artifact> getResources() {
- return collectDirectArtifacts(ValidatedAndroidData::getResources);
+ return collectDirectArtifacts(ValidatedAndroidResources::getResources);
}
@Override
@@ -112,12 +112,13 @@ public class AndroidSkylarkApiProvider extends SkylarkApiProvider
}
private NestedSet<Artifact> collectDirectArtifacts(
- final Function<ValidatedAndroidData, Iterable<Artifact>> artifactFunction) {
+ final Function<ValidatedAndroidResources, Iterable<Artifact>> artifactFunction) {
if (resourceInfo == null) {
return NestedSetBuilder.emptySet(Order.STABLE_ORDER);
}
// This will iterate over all (direct) resources. If this turns out to be a performance
- // problem, {@link ValidatedAndroidData#getArtifacts()} can be changed to return NestedSets.
+ // problem, {@link ValidatedAndroidResources#getArtifacts()} can be changed to return
+ // NestedSets.
return NestedSetBuilder.wrap(
Order.STABLE_ORDER,
Iterables.concat(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java
index 02f9808292..e23d77156e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidSkylarkData.java
@@ -216,16 +216,10 @@ public abstract class AndroidSkylarkData
boolean definesLocalResources = resourcesInfo.getDirectAndroidResources().isSingleton();
AndroidResources resources = AndroidResources.empty();
if (definesLocalResources) {
- ValidatedAndroidData validatedAndroidData =
+ ValidatedAndroidResources validatedAndroidResources =
resourcesInfo.getDirectAndroidResources().toList().get(0);
- if (validatedAndroidData.getLabel().equals(ctx.getLabel())) {
- // TODO(b/77574966): Remove this cast once we get rid of ResourceContainer and can guarantee
- // that only properly processed resources are passed into this object.
- if (!(validatedAndroidData instanceof ValidatedAndroidResources)) {
- throw new EvalException(
- Location.BUILTIN, "Old data processing pipeline does not support the Skylark API");
- }
- resources = (ValidatedAndroidResources) validatedAndroidData;
+ if (validatedAndroidResources.getLabel().equals(ctx.getLabel())) {
+ resources = validatedAndroidResources;
} else {
definesLocalResources = false;
}
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 7268da113f..3b4f239a1a 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
@@ -242,10 +242,10 @@ public final class ApplicationManifest {
}
private static Map<Artifact, Label> getMergeeManifests(
- Iterable<ValidatedAndroidData> transitiveData) {
+ Iterable<ValidatedAndroidResources> transitiveData) {
ImmutableSortedMap.Builder<Artifact, Label> builder =
ImmutableSortedMap.orderedBy(Artifact.EXEC_PATH_COMPARATOR);
- for (ValidatedAndroidData d : transitiveData) {
+ for (ValidatedAndroidResources d : transitiveData) {
if (d.isManifestExported()) {
builder.put(d.getManifest(), d.getLabel());
}
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 3ebefa4383..8c935be556 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
@@ -107,6 +107,15 @@ public class MergedAndroidResources extends ParsedAndroidResources {
this.manifest = manifest;
}
+ /**
+ * Gets an Artifact containing a zip of merged resources.
+ *
+ * <p>If assets were processed together with resources, the zip will also contain merged assets.
+ *
+ * @deprecated This artifact is produced by an often-expensive action and should not be used if
+ * another option is available. Furthermore, it will be replaced by flat files once we
+ * completely move to aapt2.
+ */
@Deprecated
public Artifact getMergedResources() {
return mergedResources;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
index fe354b8824..379b0d4874 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RClassGeneratorActionBuilder.java
@@ -18,21 +18,20 @@ import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidA
import com.google.devtools.build.lib.rules.android.AndroidDataConverter.JoinerType;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
-import java.io.Serializable;
import java.util.function.Function;
/** Builds up the spawn action for $android_rclass_generator. */
public class RClassGeneratorActionBuilder {
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> AAPT_CONVERTER =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
+ static final AndroidDataConverter<ValidatedAndroidResources> AAPT_CONVERTER =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
.with(chooseDepsToArg(AndroidAaptVersion.AAPT))
.build();
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> AAPT2_CONVERTER =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
+ static final AndroidDataConverter<ValidatedAndroidResources> AAPT2_CONVERTER =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
.with(chooseDepsToArg(AndroidAaptVersion.AAPT2))
.build();
@@ -90,15 +89,14 @@ public class RClassGeneratorActionBuilder {
.buildAndRegister("Generating R Classes", "RClassGenerator");
}
- private static Function<ValidatedAndroidData, String> chooseDepsToArg(
+ private static Function<ValidatedAndroidResources, String> chooseDepsToArg(
final AndroidAaptVersion version) {
- return (Function<ValidatedAndroidData, String> & Serializable)
- container -> {
- Artifact rTxt =
- version == AndroidAaptVersion.AAPT2 ? container.getAapt2RTxt() : container.getRTxt();
- return (rTxt != null ? rTxt.getExecPath() : "")
- + ","
- + (container.getManifest() != null ? container.getManifest().getExecPath() : "");
- };
+ return container -> {
+ Artifact rTxt =
+ version == AndroidAaptVersion.AAPT2 ? container.getAapt2RTxt() : container.getRTxt();
+ return (rTxt != null ? rTxt.getExecPath() : "")
+ + ","
+ + (container.getManifest() != null ? container.getManifest().getExecPath() : "");
+ };
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java
index 03e192bb2e..bfba2218bf 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceApk.java
@@ -38,9 +38,9 @@ public final class ResourceApk {
private final AssetDependencies assetDeps;
/**
* Validated Android resource information. Will be null when this class is built from transitive
- * resources only, and will be a superset of primaryResources otherwise.
+ * resources only, and will be equal to primaryResources otherwise.
*/
- @Nullable private final ValidatedAndroidData validatedResources;
+ @Nullable private final ValidatedAndroidResources validatedResources;
private final AndroidResources primaryResources;
private final AndroidAssets primaryAssets;
@@ -79,7 +79,7 @@ public final class ResourceApk {
@Nullable Artifact resourceJavaClassJar,
ResourceDependencies resourceDeps,
AssetDependencies assetDeps,
- @Nullable ValidatedAndroidData validatedResources,
+ @Nullable ValidatedAndroidResources validatedResources,
AndroidResources primaryResources,
AndroidAssets primaryAssets,
ProcessedAndroidManifest manifest,
@@ -124,7 +124,7 @@ public final class ResourceApk {
}
@Nullable
- public ValidatedAndroidData getValidatedResources() {
+ public ValidatedAndroidResources getValidatedResources() {
return validatedResources;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java
index ac0fbc652b..01effdaab9 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceDependencies.java
@@ -50,7 +50,7 @@ public final class ResourceDependencies {
* This should allow greater efficiency since we don't need to unroll this NestedSet to get a
* particular input. TODO (b/67996945): Complete this migration.
*/
- @Deprecated private final NestedSet<ValidatedAndroidData> transitiveResourceContainers;
+ @Deprecated private final NestedSet<ValidatedAndroidResources> transitiveResourceContainers;
/**
* Contains all the direct dependencies of the current target. Since a given direct dependency can
@@ -61,7 +61,7 @@ public final class ResourceDependencies {
* @deprecated Similarly to {@link #transitiveResourceContainers}, we are moving away from storing
* ResourceContainer objects here. TODO (b/67996945): Complete this migration.
*/
- @Deprecated private final NestedSet<ValidatedAndroidData> directResourceContainers;
+ @Deprecated private final NestedSet<ValidatedAndroidResources> directResourceContainers;
/**
* Transitive resource files for this target.
@@ -97,9 +97,10 @@ public final class ResourceDependencies {
public static ResourceDependencies fromProviders(
Iterable<AndroidResourcesInfo> providers, boolean neverlink) {
- NestedSetBuilder<ValidatedAndroidData> transitiveDependencies =
+ NestedSetBuilder<ValidatedAndroidResources> transitiveDependencies =
+ NestedSetBuilder.naiveLinkOrder();
+ NestedSetBuilder<ValidatedAndroidResources> directDependencies =
NestedSetBuilder.naiveLinkOrder();
- NestedSetBuilder<ValidatedAndroidData> directDependencies = NestedSetBuilder.naiveLinkOrder();
NestedSetBuilder<Artifact> transitiveResources = NestedSetBuilder.naiveLinkOrder();
NestedSetBuilder<Artifact> transitiveAssets = NestedSetBuilder.naiveLinkOrder();
NestedSetBuilder<Artifact> transitiveManifests = NestedSetBuilder.naiveLinkOrder();
@@ -174,8 +175,8 @@ public final class ResourceDependencies {
private ResourceDependencies(
boolean neverlink,
- NestedSet<ValidatedAndroidData> transitiveResourceContainers,
- NestedSet<ValidatedAndroidData> directResourceContainers,
+ NestedSet<ValidatedAndroidResources> transitiveResourceContainers,
+ NestedSet<ValidatedAndroidResources> directResourceContainers,
NestedSet<Artifact> transitiveResources,
NestedSet<Artifact> transitiveAssets,
NestedSet<Artifact> transitiveManifests,
@@ -219,8 +220,8 @@ public final class ResourceDependencies {
@VisibleForTesting
ResourceDependencies withResources(
- NestedSet<ValidatedAndroidData> transitiveResourceContainers,
- NestedSet<ValidatedAndroidData> directResourceContainers,
+ NestedSet<ValidatedAndroidResources> transitiveResourceContainers,
+ NestedSet<ValidatedAndroidResources> directResourceContainers,
NestedSet<Artifact> transitiveResources) {
return new ResourceDependencies(
neverlink,
@@ -247,7 +248,7 @@ public final class ResourceDependencies {
* @param newDirectResource The new direct dependency for AndroidResourcesInfo
* @return A provider with the current resources and label.
*/
- public AndroidResourcesInfo toInfo(ValidatedAndroidData newDirectResource) {
+ public AndroidResourcesInfo toInfo(ValidatedAndroidResources newDirectResource) {
if (neverlink) {
return ResourceDependencies.empty()
.toInfo(
@@ -259,11 +260,11 @@ public final class ResourceDependencies {
newDirectResource.getLabel(),
newDirectResource.getProcessedManifest(),
newDirectResource.getRTxt(),
- NestedSetBuilder.<ValidatedAndroidData>naiveLinkOrder()
+ NestedSetBuilder.<ValidatedAndroidResources>naiveLinkOrder()
.addTransitive(transitiveResourceContainers)
.addTransitive(directResourceContainers)
.build(),
- NestedSetBuilder.<ValidatedAndroidData>naiveLinkOrder()
+ NestedSetBuilder.<ValidatedAndroidResources>naiveLinkOrder()
.add(newDirectResource.export())
.build(),
NestedSetBuilder.<Artifact>naiveLinkOrder()
@@ -331,8 +332,8 @@ public final class ResourceDependencies {
* get the specific Artifacts you need instead.
*/
@Deprecated
- public NestedSet<ValidatedAndroidData> getResourceContainers() {
- return NestedSetBuilder.<ValidatedAndroidData>naiveLinkOrder()
+ public NestedSet<ValidatedAndroidResources> getResourceContainers() {
+ return NestedSetBuilder.<ValidatedAndroidResources>naiveLinkOrder()
.addTransitive(directResourceContainers)
.addTransitive(transitiveResourceContainers)
.build();
@@ -343,7 +344,7 @@ public final class ResourceDependencies {
* get the specific Artifacts you need instead.
*/
@Deprecated
- public NestedSet<ValidatedAndroidData> getTransitiveResourceContainers() {
+ public NestedSet<ValidatedAndroidResources> getTransitiveResourceContainers() {
return transitiveResourceContainers;
}
@@ -352,7 +353,7 @@ public final class ResourceDependencies {
* get the specific Artifacts you need instead.
*/
@Deprecated
- public NestedSet<ValidatedAndroidData> getDirectResourceContainers() {
+ public NestedSet<ValidatedAndroidResources> getDirectResourceContainers() {
return directResourceContainers;
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilter.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilter.java
index 15ef00a243..51688cda12 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilter.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceFilter.java
@@ -65,17 +65,17 @@ public class ResourceFilter {
return Optional.of(NestedSetBuilder.wrap(artifacts.getOrder(), filtered));
}
- public NestedSet<ValidatedAndroidData> filterDependencyContainers(
- RuleErrorConsumer errorConsumer, NestedSet<ValidatedAndroidData> resourceContainers)
+ public NestedSet<ValidatedAndroidResources> filterDependencyContainers(
+ RuleErrorConsumer errorConsumer, NestedSet<ValidatedAndroidResources> resourceContainers)
throws RuleErrorException {
if (isEmpty) {
return resourceContainers;
}
- NestedSetBuilder<ValidatedAndroidData> builder =
+ NestedSetBuilder<ValidatedAndroidResources> builder =
new NestedSetBuilder<>(resourceContainers.getOrder());
- for (ValidatedAndroidData container : resourceContainers) {
+ for (ValidatedAndroidResources container : resourceContainers) {
builder.add(container.filter(errorConsumer, this, /* isDependency = */ true));
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
index a327e4ac63..a95f27924a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/ResourceShrinkerActionBuilder.java
@@ -27,7 +27,7 @@ public class ResourceShrinkerActionBuilder {
private Artifact resourceFilesZip;
private Artifact shrunkJar;
private Artifact proguardMapping;
- private ValidatedAndroidData primaryResources;
+ private ValidatedAndroidResources primaryResources;
private ResourceDependencies dependencyResources;
private Artifact resourceApkOut;
private Artifact shrunkResourcesOut;
@@ -68,10 +68,10 @@ public class ResourceShrinkerActionBuilder {
}
/**
- * @param primary The fully processed {@link ValidatedAndroidData} of the resources to be shrunk.
- * Must contain both an R.txt and merged manifest.
+ * @param primary The fully processed {@link ValidatedAndroidResources} of the resources to be
+ * shrunk. Must contain both an R.txt and merged manifest.
*/
- public ResourceShrinkerActionBuilder withPrimary(ValidatedAndroidData primary) {
+ public ResourceShrinkerActionBuilder withPrimary(ValidatedAndroidResources primary) {
checkNotNull(primary);
checkNotNull(primary.getManifest());
checkNotNull(primary.getRTxt());
@@ -150,7 +150,7 @@ public class ResourceShrinkerActionBuilder {
private ImmutableList<Artifact> getManifests(ResourceDependencies resourceDependencies) {
ImmutableList.Builder<Artifact> manifests = ImmutableList.builder();
- for (ValidatedAndroidData resources : resourceDependencies.getResourceContainers()) {
+ for (ValidatedAndroidResources resources : resourceDependencies.getResourceContainers()) {
if (resources.getManifest() != null) {
manifests.add(resources.getManifest());
}
@@ -159,10 +159,10 @@ public class ResourceShrinkerActionBuilder {
}
private ImmutableList<String> getResourcePackages(
- ValidatedAndroidData primaryResources, ResourceDependencies resourceDependencies) {
+ ValidatedAndroidResources primaryResources, ResourceDependencies resourceDependencies) {
ImmutableList.Builder<String> resourcePackages = ImmutableList.builder();
resourcePackages.add(primaryResources.getJavaPackage());
- for (ValidatedAndroidData resources : resourceDependencies.getResourceContainers()) {
+ for (ValidatedAndroidResources resources : resourceDependencies.getResourceContainers()) {
resourcePackages.add(resources.getJavaPackage());
}
return resourcePackages.build();
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
index 1fd1d2059a..dd9fb13b6c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/RobolectricResourceSymbolsActionBuilder.java
@@ -30,23 +30,23 @@ import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.
public class RobolectricResourceSymbolsActionBuilder {
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> TO_ARG =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
- .withRoots(ValidatedAndroidData::getResourceRoots)
- .withRoots(ValidatedAndroidData::getAssetRoots)
- .withArtifact(ValidatedAndroidData::getManifest)
- .maybeWithArtifact(ValidatedAndroidData::getRTxt)
- .maybeWithArtifact(ValidatedAndroidData::getSymbols)
+ static final AndroidDataConverter<ValidatedAndroidResources> TO_ARG =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
+ .withRoots(ValidatedAndroidResources::getResourceRoots)
+ .withRoots(ValidatedAndroidResources::getAssetRoots)
+ .withArtifact(ValidatedAndroidResources::getManifest)
+ .maybeWithArtifact(ValidatedAndroidResources::getRTxt)
+ .maybeWithArtifact(ValidatedAndroidResources::getSymbols)
.build();
@AutoCodec @VisibleForSerialization
- static final AndroidDataConverter<ValidatedAndroidData> TO_ARG_AAPT2 =
- AndroidDataConverter.<ValidatedAndroidData>builder(JoinerType.COLON_COMMA)
- .withRoots(ValidatedAndroidData::getResourceRoots)
- .withRoots(ValidatedAndroidData::getAssetRoots)
- .withArtifact(ValidatedAndroidData::getManifest)
- .maybeWithArtifact(ValidatedAndroidData::getAapt2RTxt)
- .maybeWithArtifact(ValidatedAndroidData::getSymbols)
+ static final AndroidDataConverter<ValidatedAndroidResources> TO_ARG_AAPT2 =
+ AndroidDataConverter.<ValidatedAndroidResources>builder(JoinerType.COLON_COMMA)
+ .withRoots(ValidatedAndroidResources::getResourceRoots)
+ .withRoots(ValidatedAndroidResources::getAssetRoots)
+ .withArtifact(ValidatedAndroidResources::getManifest)
+ .maybeWithArtifact(ValidatedAndroidResources::getAapt2RTxt)
+ .maybeWithArtifact(ValidatedAndroidResources::getSymbols)
.build();
private Artifact classJarOut;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidData.java b/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidData.java
deleted file mode 100644
index 81a5579fed..0000000000
--- a/src/main/java/com/google/devtools/build/lib/rules/android/ValidatedAndroidData.java
+++ /dev/null
@@ -1,70 +0,0 @@
-// Copyright 2018 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.android;
-
-import com.google.common.annotations.VisibleForTesting;
-import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
-import com.google.devtools.build.lib.packages.RuleErrorConsumer;
-import com.google.devtools.build.lib.skylarkbuildapi.android.ValidatedAndroidDataApi;
-
-/**
- * A {@link CompiledMergableAndroidData} that has been fully processed, validated, and packaged.
- *
- * <p>It contains resources and, depending on implementation, possibly assets and manifest.
- *
- * <p>TODO(b/76418178): Once resources and assets are completely decoupled and {@link
- * ResourceContainer} is removed, this interface can be replaced with {@link
- * ValidatedAndroidResources}
- */
-public interface ValidatedAndroidData extends CompiledMergableAndroidData, ValidatedAndroidDataApi {
-
- Artifact getRTxt();
-
- Artifact getAapt2RTxt();
-
- Artifact getStaticLibrary();
-
- ValidatedAndroidData filter(
- RuleErrorConsumer errorConsumer, ResourceFilter resourceFilter, boolean isDependency)
- throws RuleErrorException;
-
- Artifact getJavaClassJar();
-
- String getJavaPackage();
-
- Artifact getJavaSourceJar();
-
- @VisibleForTesting
- Artifact getApk();
-
- /**
- * Gets an Artifact containing a zip of merged resources.
- *
- * <p>If assets were processed together with resources, the zip will also contain merged assets.
- *
- * @deprecated This artifact is produced by an often-expensive action and should not be used if
- * another option is available. Furthermore, it will be replaced by flat files once we
- * completely move to aapt2.
- */
- @Deprecated
- Artifact getMergedResources();
-
- ProcessedAndroidManifest getProcessedManifest();
-
- /** Exports an immutable version of this data. */
- default ValidatedAndroidData export() {
- return this;
- }
-}
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 231221e912..77456e74fb 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
@@ -17,13 +17,14 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.packages.RuleClass.ConfiguredTargetFactory.RuleErrorException;
import com.google.devtools.build.lib.packages.RuleErrorConsumer;
import com.google.devtools.build.lib.rules.android.AndroidConfiguration.AndroidAaptVersion;
+import com.google.devtools.build.lib.skylarkbuildapi.android.ValidatedAndroidDataApi;
import java.util.Objects;
import java.util.Optional;
import javax.annotation.Nullable;
/** Wraps validated and packaged Android resource information */
-public class ValidatedAndroidResources extends MergedAndroidResources
- implements ValidatedAndroidData {
+public class ValidatedAndroidResources extends MergedAndroidResources implements
+ ValidatedAndroidDataApi {
private final Artifact rTxt;
private final Artifact sourceJar;
private final Artifact apk;
@@ -118,22 +119,18 @@ public class ValidatedAndroidResources extends MergedAndroidResources
return getResourceDependencies().toInfo(this);
}
- @Override
public Artifact getRTxt() {
return rTxt;
}
- @Override
public Artifact getJavaSourceJar() {
return sourceJar;
}
- @Override
public Artifact getApk() {
return apk;
}
- @Override
@Nullable
public Artifact getAapt2RTxt() {
return aapt2RTxt;
@@ -144,13 +141,11 @@ public class ValidatedAndroidResources extends MergedAndroidResources
return aapt2SourceJar;
}
- @Override
@Nullable
public Artifact getStaticLibrary() {
return staticLibrary;
}
- @Override
public ValidatedAndroidResources filter(
RuleErrorConsumer errorConsumer, ResourceFilter resourceFilter, boolean isDependency)
throws RuleErrorException {
@@ -189,8 +184,7 @@ public class ValidatedAndroidResources extends MergedAndroidResources
super.hashCode(), rTxt, sourceJar, apk, aapt2RTxt, aapt2SourceJar, staticLibrary);
}
- @Override
- public ValidatedAndroidData export() {
+ public ValidatedAndroidResources export() {
return new ValidatedAndroidResources(
new MergedAndroidResources(
new ParsedAndroidResources(
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java
index bf04757007..61c7365aa6 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AarImportTest.java
@@ -144,12 +144,12 @@ public class AarImportTest extends BuildViewTestCase {
.collect(Collectors.toSet()))
.containsExactly("a/foo_symbols/symbols.zip", "a/library_symbols/symbols.zip");
- NestedSet<ValidatedAndroidData> directResources =
+ NestedSet<ValidatedAndroidResources> directResources =
libTarget.get(AndroidResourcesInfo.PROVIDER).getDirectAndroidResources();
assertThat(directResources).hasSize(1);
- ValidatedAndroidData resourceContainer = directResources.iterator().next();
+ ValidatedAndroidResources resourceContainer = directResources.iterator().next();
Truth.assertThat(resourceContainer.getAapt2RTxt()).isNotNull();
}
@@ -157,11 +157,11 @@ public class AarImportTest extends BuildViewTestCase {
public void testResourcesProvided() throws Exception {
ConfiguredTarget aarImportTarget = getConfiguredTarget("//a:foo");
- NestedSet<ValidatedAndroidData> directResources =
+ NestedSet<ValidatedAndroidResources> directResources =
aarImportTarget.get(AndroidResourcesInfo.PROVIDER).getDirectAndroidResources();
assertThat(directResources).hasSize(1);
- ValidatedAndroidData resourceContainer = directResources.iterator().next();
+ ValidatedAndroidResources resourceContainer = directResources.iterator().next();
assertThat(resourceContainer.getManifest()).isNotNull();
Artifact resourceTreeArtifact = Iterables.getOnlyElement(resourceContainer.getResources());
@@ -182,7 +182,7 @@ public class AarImportTest extends BuildViewTestCase {
@Test
public void testResourcesExtractor() throws Exception {
- ValidatedAndroidData resourceContainer =
+ ValidatedAndroidResources resourceContainer =
getConfiguredTarget("//a:foo")
.get(AndroidResourcesInfo.PROVIDER)
.getDirectAndroidResources()
@@ -384,7 +384,7 @@ public class AarImportTest extends BuildViewTestCase {
@Test
public void testNoCustomJavaPackage() throws Exception {
- ValidatedAndroidData resourceContainer =
+ ValidatedAndroidResources resourceContainer =
getConfiguredTarget("//a:foo")
.get(AndroidResourcesInfo.PROVIDER)
.getDirectAndroidResources()
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
index 38d691b39d..565be7bc05 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBinaryTest.java
@@ -1090,7 +1090,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
"java/com/google/android/neversayneveragain/libb1.jar_desugared.jar");
assertThat(
resourceInputPaths(
- "java/com/google/android/neversayneveragain", getValidatedData(b1)))
+ "java/com/google/android/neversayneveragain", getValidatedResources(b1)))
.doesNotContain("res/values/resource.xml");
ConfiguredTarget b2 = getConfiguredTarget("//java/com/google/android/neversayneveragain:b2");
@@ -1106,8 +1106,8 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
"java/com/google/android/neversayneveragain/_dx/l3/libl3.jar_desugared.jar",
"java/com/google/android/neversayneveragain/libb2.jar_desugared.jar");
assertThat(
- resourceInputPaths(
- "java/com/google/android/neversayneveragain", getValidatedData(b2)))
+ resourceInputPaths(
+ "java/com/google/android/neversayneveragain", getValidatedResources(b2)))
.doesNotContain("res/values/resource.xml");
ConfiguredTarget b3 = getConfiguredTarget("//java/com/google/android/neversayneveragain:b3");
@@ -1123,8 +1123,8 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
assertThat(b3Inputs)
.doesNotContain("java/com/google/android/neversayneveragain/libl2.jar_desugared.jar");
assertThat(
- resourceInputPaths(
- "java/com/google/android/neversayneveragain", getValidatedData(b3)))
+ resourceInputPaths(
+ "java/com/google/android/neversayneveragain", getValidatedResources(b3)))
.contains("res/values/resource.xml");
}
@@ -1217,7 +1217,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
// Ensure that the args are present
ConfiguredTarget binary = getConfiguredTarget("//java/com/google/android:b");
- List<String> args = resourceArguments(getValidatedData(binary));
+ List<String> args = resourceArguments(getValidatedResources(binary));
assertThat(flagValue("--resourceConfigs", args)).contains("en,fr");
}
@@ -1271,7 +1271,8 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
" aapt_version = 'aapt2',",
" densities = ['hdpi, , ', 'xhdpi'],",
" resource_files = ['" + Joiner.on("', '").join(resources) + "'])");
- ValidatedAndroidData directResources = getValidatedData(binary, /* transitive= */ false);
+ ValidatedAndroidResources directResources =
+ getValidatedResources(binary, /* transitive= */ false);
// Validate that the AndroidResourceProvider for this binary contains all values.
assertThat(resourceContentsPaths(dir, directResources)).containsExactlyElementsIn(resources);
@@ -1577,9 +1578,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
throws Exception {
List<String> unexpectedResources = new ArrayList<>();
- List<String> expectedFiltered = new ArrayList<>();
for (String qualifier : unexpectedQualifiers) {
- expectedFiltered.add(folderType + "-" + qualifier + "/foo." + suffix);
unexpectedResources.add("res/" + folderType + "-" + qualifier + "/foo." + suffix);
}
@@ -1593,7 +1592,6 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
expectedResources.add(unqualifiedResource);
} else {
unexpectedResources.add(unqualifiedResource);
- expectedFiltered.add(folderType + "/foo." + suffix);
}
// Default resources should never be filtered
@@ -1620,7 +1618,8 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
.getOutputDirectoryName())
.isNull();
- ValidatedAndroidData directResources = getValidatedData(binary, /* transitive= */ false);
+ ValidatedAndroidResources directResources =
+ getValidatedResources(binary, /* transitive= */ false);
// Validate that the AndroidResourceProvider for this binary contains only the filtered values.
assertThat(resourceContentsPaths(dir, directResources))
@@ -1677,8 +1676,10 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
" deps = [':lib'],",
" resource_configuration_filters = ['en'])");
- ValidatedAndroidData directResources = getValidatedData(binary, /* transitive= */ false);
- ValidatedAndroidData transitiveResources = getValidatedData(binary, /* transitive= */ true);
+ ValidatedAndroidResources directResources =
+ getValidatedResources(binary, /* transitive= */ false);
+ ValidatedAndroidResources transitiveResources =
+ getValidatedResources(binary, /* transitive= */ true);
assertThat(resourceContentsPaths(dir, directResources)).isEmpty();
@@ -1726,7 +1727,8 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
" 'multiple/res/drawable-en-mdpi/foo.png'],",
")");
- ValidatedAndroidData directResources = getValidatedData(binary, /* transitive= */ false);
+ ValidatedAndroidResources directResources =
+ getValidatedResources(binary, /* transitive= */ false);
// All of the resources are transitive
assertThat(resourceContentsPaths(dir, directResources)).isEmpty();
@@ -1780,7 +1782,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
" ])");
List<String> resourceProcessingArgs =
- getGeneratingSpawnActionArgs(getValidatedData(binary).getRTxt());
+ getGeneratingSpawnActionArgs(getValidatedResources(binary).getRTxt());
assertThat(
Iterables.filter(
@@ -1812,7 +1814,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
" manifest = 'AndroidManifest.xml')");
List<String> resourceProcessingArgs =
- getGeneratingSpawnActionArgs(getValidatedData(binary).getRTxt());
+ getGeneratingSpawnActionArgs(getValidatedResources(binary).getRTxt());
assertThat(resourceProcessingArgs).containsAllOf("--resourceConfigs", "ar-rXB,en,en-rXA");
}
@@ -1829,7 +1831,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
useConfiguration("--experimental_android_throw_on_resource_conflict");
ConfiguredTarget binary = getConfiguredTarget("//java/r/android:r");
- List<String> resourceProcessingArgs = resourceArguments(getValidatedData(binary));
+ List<String> resourceProcessingArgs = resourceArguments(getValidatedResources(binary));
assertThat(resourceProcessingArgs).contains("--throwOnResourceConflict");
}
@@ -1841,7 +1843,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
* @return the paths to all artifacts from the input that are contained within the given
* directory, relative to that directory.
*/
- private List<String> resourceContentsPaths(String dir, ValidatedAndroidData resource) {
+ private List<String> resourceContentsPaths(String dir, ValidatedAndroidResources resource) {
return pathsToArtifacts(dir, resource.getArtifacts());
}
@@ -1853,7 +1855,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
* @return the paths to all artifacts used as inputs to resource processing that are contained
* within the given directory, relative to that directory.
*/
- private List<String> resourceInputPaths(String dir, ValidatedAndroidData resource) {
+ private List<String> resourceInputPaths(String dir, ValidatedAndroidResources resource) {
return pathsToArtifacts(dir, resourceGeneratingAction(resource).getInputs());
}
@@ -2010,8 +2012,10 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
AndroidResourcesInfo resourcesInfo =
binary.getConfiguredTarget().get(AndroidResourcesInfo.PROVIDER);
assertThat(resourcesInfo.getTransitiveAndroidResources()).hasSize(2);
- ValidatedAndroidData firstDep = resourcesInfo.getTransitiveAndroidResources().toList().get(0);
- ValidatedAndroidData secondDep = resourcesInfo.getTransitiveAndroidResources().toList().get(1);
+ ValidatedAndroidResources firstDep =
+ resourcesInfo.getTransitiveAndroidResources().toList().get(0);
+ ValidatedAndroidResources secondDep =
+ resourcesInfo.getTransitiveAndroidResources().toList().get(1);
assertThat(args)
.containsAllOf(
@@ -3353,7 +3357,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
" nocompress_extensions = ['.apk', '.so'],",
")");
ConfiguredTarget binary = getConfiguredTarget("//java/r/android:r");
- ValidatedAndroidData resource = getValidatedData(binary);
+ ValidatedAndroidResources resource = getValidatedResources(binary);
List<String> args = resourceArguments(resource);
Artifact inputManifest =
getFirstArtifactEndingWith(
@@ -4318,7 +4322,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
ConfiguredTarget b = getDirectPrerequisite(a, "//java/b:b");
List<String> resourceProcessingArgs =
- getGeneratingSpawnActionArgs(getValidatedData(a).getRTxt());
+ getGeneratingSpawnActionArgs(getValidatedResources(a).getRTxt());
assertThat(resourceProcessingArgs).contains("AAPT2_PACKAGE");
String directData =
@@ -4329,7 +4333,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
assertThat(resourceProcessingArgs).contains("--useCompiledResourcesForMerge");
List<String> resourceMergingArgs =
- getGeneratingSpawnActionArgs(getValidatedData(b).getJavaClassJar());
+ getGeneratingSpawnActionArgs(getValidatedResources(b).getJavaClassJar());
assertThat(resourceMergingArgs).contains("MERGE_COMPILED");
}
@@ -4362,7 +4366,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
ConfiguredTarget b = getDirectPrerequisite(a, "//java/b:b");
List<String> resourceProcessingArgs =
- getGeneratingSpawnActionArgs(getValidatedData(a).getRTxt());
+ getGeneratingSpawnActionArgs(getValidatedResources(a).getRTxt());
assertThat(resourceProcessingArgs).contains("PACKAGE");
String directData =
@@ -4372,7 +4376,7 @@ public class AndroidBinaryTest extends AndroidBuildViewTestCase {
assertThat(directData).contains("merged.bin");
List<String> compiledResourceMergingArgs =
- getGeneratingSpawnActionArgs(getValidatedData(b).getJavaClassJar());
+ getGeneratingSpawnActionArgs(getValidatedResources(b).getJavaClassJar());
assertThat(compiledResourceMergingArgs).contains("MERGE_COMPILED");
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java
index a360befaac..7a424bf829 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidBuildViewTestCase.java
@@ -115,12 +115,12 @@ public abstract class AndroidBuildViewTestCase extends BuildViewTestCase {
.isNotNull();
}
- protected List<String> resourceArguments(ValidatedAndroidData resource)
+ protected List<String> resourceArguments(ValidatedAndroidResources resource)
throws CommandLineExpansionException {
return getGeneratingSpawnActionArgs(resource.getApk());
}
- protected SpawnAction resourceGeneratingAction(ValidatedAndroidData resource) {
+ protected SpawnAction resourceGeneratingAction(ValidatedAndroidResources resource) {
return getGeneratingSpawnAction(resource.getApk());
}
@@ -130,17 +130,6 @@ public abstract class AndroidBuildViewTestCase extends BuildViewTestCase {
protected static ValidatedAndroidResources getValidatedResources(
ConfiguredTarget target, boolean transitive) {
- ValidatedAndroidData validated = getValidatedData(target, transitive);
- assertThat(validated).isInstanceOf(ValidatedAndroidResources.class);
- return (ValidatedAndroidResources) validated;
- }
-
- protected static ValidatedAndroidData getValidatedData(ConfiguredTarget target) {
- return getValidatedData(target, /* transitive = */ false);
- }
-
- protected static ValidatedAndroidData getValidatedData(
- ConfiguredTarget target, boolean transitive) {
Preconditions.checkNotNull(target);
final AndroidResourcesInfo info = target.get(AndroidResourcesInfo.PROVIDER);
assertThat(info).named("No android resources exported from the target.").isNotNull();
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
index d045f95ee2..7d4fe45f1a 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidLibraryTest.java
@@ -33,7 +33,7 @@ import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.OutputGroupInfo;
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.actions.SpawnAction;
-import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
+import com.google.devtools.build.lib.analysis.config.BuildConfiguration.StrictDepsMode;
import com.google.devtools.build.lib.analysis.configuredtargets.FileConfiguredTarget;
import com.google.devtools.build.lib.analysis.configuredtargets.OutputFileConfiguredTarget;
import com.google.devtools.build.lib.cmdline.Label;
@@ -185,8 +185,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"android_library(name = 'b', srcs = ['B.java'])");
Artifact artifact = getFileConfiguredTarget("//java/android/strict:libb.jar").getArtifact();
JavaCompileAction compileAction = (JavaCompileAction) getGeneratingAction(artifact);
- assertThat(compileAction.getStrictJavaDepsMode())
- .isEqualTo(BuildConfiguration.StrictDepsMode.OFF);
+ assertThat(compileAction.getStrictJavaDepsMode()).isEqualTo(StrictDepsMode.OFF);
}
@Test
@@ -195,8 +194,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"android_library(name = 'b', srcs = ['B.java'])");
Artifact artifact = getFileConfiguredTarget("//java/android/strict:libb.jar").getArtifact();
JavaCompileAction compileAction = (JavaCompileAction) getGeneratingAction(artifact);
- assertThat(compileAction.getStrictJavaDepsMode())
- .isEqualTo(BuildConfiguration.StrictDepsMode.ERROR);
+ assertThat(compileAction.getStrictJavaDepsMode()).isEqualTo(StrictDepsMode.ERROR);
}
@Test
@@ -206,8 +204,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
"android_library(name = 'b', srcs = ['B.java'])");
Artifact artifact = getFileConfiguredTarget("//java/android/strict:libb.jar").getArtifact();
JavaCompileAction compileAction = (JavaCompileAction) getGeneratingAction(artifact);
- assertThat(compileAction.getStrictJavaDepsMode())
- .isEqualTo(BuildConfiguration.StrictDepsMode.WARN);
+ assertThat(compileAction.getStrictJavaDepsMode()).isEqualTo(StrictDepsMode.WARN);
}
@Test
@@ -941,7 +938,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
" deps = [':bar'])",
"android_library(name = 'bar',",
" manifest = 'AndroidManifest.xml')");
- Function<ValidatedAndroidData, Label> getLabel = ValidatedAndroidData::getLabel;
+ Function<ValidatedAndroidResources, Label> getLabel = ValidatedAndroidResources::getLabel;
ConfiguredTarget foo = getConfiguredTarget("//java/apps/android:foo");
assertThat(
Iterables.transform(
@@ -1033,7 +1030,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
NestedSet<Artifact> filesToBuild = getFilesToBuild(target);
Set<Artifact> artifacts = actionsTestUtil().artifactClosureOf(filesToBuild);
- ValidatedAndroidData resources =
+ ValidatedAndroidResources resources =
Iterables.getOnlyElement(
target.get(AndroidResourcesInfo.PROVIDER).getDirectAndroidResources());
@@ -1152,7 +1149,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
.isEqualTo(
ActionsTestUtil.getFirstArtifactEndingWith(
artifactClosure, "java/android/AndroidManifest.xml"));
- ValidatedAndroidData resources =
+ ValidatedAndroidResources resources =
getOnlyElement(
getConfiguredTarget("//java/android:r")
.get(AndroidResourcesInfo.PROVIDER)
@@ -1184,7 +1181,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
.isEqualTo(
ActionsTestUtil.getFirstArtifactEndingWith(
artifactClosure, "handwriting/AndroidManifest.xml"));
- ValidatedAndroidData resources =
+ ValidatedAndroidResources resources =
getOnlyElement(
getConfiguredTarget("//research/handwriting/java/com/google/research/handwriting:r")
.get(AndroidResourcesInfo.PROVIDER)
@@ -1218,7 +1215,7 @@ public class AndroidLibraryTest extends AndroidBuildViewTestCase {
.isEqualTo(
ActionsTestUtil.getFirstArtifactEndingWith(
artifactClosure, "java/android/AndroidManifest.xml"));
- ValidatedAndroidData resources =
+ ValidatedAndroidResources resources =
getOnlyElement(
getConfiguredTarget("//java/android:r")
.get(AndroidResourcesInfo.PROVIDER)
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
index d60f365b71..a57588a1f1 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/AndroidResourcesTest.java
@@ -467,7 +467,7 @@ public class AndroidResourcesTest extends ResourceTestBase {
null,
null);
- ValidatedAndroidData validated =
+ ValidatedAndroidResources validated =
processedData
.generateRClass(
AndroidDataContext.forNative(ruleContext),
diff --git a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
index 5ab028a7cd..d09214c3e0 100644
--- a/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
+++ b/src/test/java/com/google/devtools/build/lib/rules/android/ResourceFilterFactoryTest.java
@@ -38,9 +38,9 @@ import org.junit.runners.JUnit4;
@RunWith(JUnit4.class)
public class ResourceFilterFactoryTest extends ResourceTestBase {
- private NestedSet<ValidatedAndroidData> getResources(ImmutableList<Artifact>... resources)
+ private NestedSet<ValidatedAndroidResources> getResources(ImmutableList<Artifact>... resources)
throws Exception {
- NestedSetBuilder<ValidatedAndroidData> builder = NestedSetBuilder.naiveLinkOrder();
+ NestedSetBuilder<ValidatedAndroidResources> builder = NestedSetBuilder.naiveLinkOrder();
for (ImmutableList<Artifact> resourceList : resources) {
builder.add(getResources(resourceList));
}
@@ -386,29 +386,29 @@ public class ResourceFilterFactoryTest extends ResourceTestBase {
.containsExactly(directResourceToKeep, transitiveResourceToKeep)
.inOrder();
- List<ValidatedAndroidData> directContainers =
+ List<ValidatedAndroidResources> directContainers =
filteredResourceDeps.getDirectResourceContainers().toList();
assertThat(directContainers).hasSize(2);
- ValidatedAndroidData directToDiscard = directContainers.get(0);
+ ValidatedAndroidResources directToDiscard = directContainers.get(0);
assertThat(directToDiscard.getResources()).isEmpty();
assertThat(directToDiscard.getResourceRoots()).isEmpty();
- ValidatedAndroidData directToKeep = directContainers.get(1);
+ ValidatedAndroidResources directToKeep = directContainers.get(1);
assertThat(directToKeep.getResources()).containsExactly(directResourceToKeep);
assertThat(directToKeep.getResourceRoots())
.containsExactly(
directResourceToKeep.getExecPath().getParentDirectory().getParentDirectory());
- List<ValidatedAndroidData> transitiveContainers =
+ List<ValidatedAndroidResources> transitiveContainers =
filteredResourceDeps.getTransitiveResourceContainers().toList();
assertThat(transitiveContainers).hasSize(2);
- ValidatedAndroidData transitiveToDiscard = transitiveContainers.get(0);
+ ValidatedAndroidResources transitiveToDiscard = transitiveContainers.get(0);
assertThat(transitiveToDiscard.getResources()).isEmpty();
assertThat(transitiveToDiscard.getResourceRoots()).isEmpty();
- ValidatedAndroidData transitiveToKeep = transitiveContainers.get(1);
+ ValidatedAndroidResources transitiveToKeep = transitiveContainers.get(1);
assertThat(transitiveToKeep.getResources()).containsExactly(transitiveResourceToKeep);
assertThat(transitiveToKeep.getResourceRoots())
.containsExactly(