aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java34
1 files changed, 22 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java
index ba4b09dcaf..91d6fcb21c 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/AndroidDeployInfoAction.java
@@ -54,17 +54,28 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction {
}
private static final String GUID = "eda283ba-9000-4b80-8dc4-7939101c44ba";
- private final ByteString byteString;
+
+ private final Artifact mergedManifest;
+ private final ImmutableList<Artifact> additionalMergedManifests;
+ private final ImmutableList<Artifact> apksToDeploy;
+ private final ImmutableList<Artifact> dataDeps;
AndroidDeployInfoAction(
ActionOwner owner,
Artifact outputFile,
Artifact mergedManifest,
- Iterable<Artifact> additionalMergedManifests,
- Iterable<Artifact> apksToDeploy,
- Iterable<Artifact> dataDeps) {
+ ImmutableList<Artifact> additionalMergedManifests,
+ ImmutableList<Artifact> apksToDeploy,
+ ImmutableList<Artifact> dataDeps) {
super(owner, makeInputs(mergedManifest, additionalMergedManifests, apksToDeploy, dataDeps),
outputFile, false);
+ this.mergedManifest = mergedManifest;
+ this.additionalMergedManifests = additionalMergedManifests;
+ this.apksToDeploy = apksToDeploy;
+ this.dataDeps = dataDeps;
+ }
+
+ private ByteString getByteString() {
AndroidDeployInfoOuterClass.AndroidDeployInfo.Builder builder =
AndroidDeployInfoOuterClass.AndroidDeployInfo.newBuilder();
builder.setMergedManifest(makeArtifactProto(mergedManifest));
@@ -77,16 +88,16 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction {
for (Artifact dataDep : dataDeps) {
builder.addDataToDeploy(makeArtifactProto(dataDep));
}
- this.byteString = builder.build().toByteString();
+ return builder.build().toByteString();
}
static void createDeployInfoAction(
RuleContext ruleContext,
Artifact deployInfo,
Artifact mergedManifest,
- Iterable<Artifact> additionalMergedManifests,
- Iterable<Artifact> apksToDeploy,
- Iterable<Artifact> dataDeps) {
+ ImmutableList<Artifact> additionalMergedManifests,
+ ImmutableList<Artifact> apksToDeploy,
+ ImmutableList<Artifact> dataDeps) {
Action action = new AndroidDeployInfoAction(ruleContext.getActionOwner(),
deployInfo, mergedManifest, additionalMergedManifests, apksToDeploy, dataDeps);
ruleContext.registerAction(action);
@@ -94,12 +105,12 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction {
@Override
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) throws IOException {
- return new ByteStringDeterministicWriter(byteString);
+ return new ByteStringDeterministicWriter(getByteString());
}
@VisibleForTesting
public AndroidDeployInfo getDeployInfo() throws InvalidProtocolBufferException {
- return AndroidDeployInfo.parseFrom(byteString);
+ return AndroidDeployInfo.parseFrom(getByteString());
}
@Override
@@ -107,7 +118,7 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction {
Fingerprint f = new Fingerprint()
.addString(GUID);
- try (InputStream in = byteString.newInput()) {
+ try (InputStream in = getByteString().newInput()) {
byte[] buffer = new byte[512];
int amountRead;
while ((amountRead = in.read(buffer)) != -1) {
@@ -116,7 +127,6 @@ public final class AndroidDeployInfoAction extends AbstractFileWriteAction {
} catch (IOException e) {
throw new RuntimeException(e);
}
-
return f.hexDigestAndReset();
}