aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java
diff options
context:
space:
mode:
authorGravatar felly <felly@google.com>2018-07-25 15:15:11 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-25 15:16:25 -0700
commit8e6a1b93a933300f1dd5d97184424f3b3062e603 (patch)
tree116137ef606be110965020b99f4e4acd172eaa31 /src/main/java
parent1ed89aa24c91248fc062477250d5188940a848de (diff)
Weave the artifact path resolver through the Spawn execution context.
RELNOTES: None PiperOrigin-RevId: 206063489
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/SpawnRunner.java6
2 files changed, 12 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java
index c94cd491d5..0930675181 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/AbstractSpawnStrategy.java
@@ -22,6 +22,7 @@ import com.google.devtools.build.lib.actions.ActionExecutionMetadata;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
+import com.google.devtools.build.lib.actions.ArtifactPathResolver;
import com.google.devtools.build.lib.actions.EnvironmentalExecException;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.MetadataProvider;
@@ -190,6 +191,11 @@ public abstract class AbstractSpawnStrategy implements SandboxedSpawnActionConte
}
@Override
+ public ArtifactPathResolver getPathResolver() {
+ return actionExecutionContext.getPathResolver();
+ }
+
+ @Override
public void lockOutputFiles() throws InterruptedException {
Class<? extends SpawnActionContext> token = AbstractSpawnStrategy.this.getClass();
if (writeOutputFiles != null
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SpawnRunner.java b/src/main/java/com/google/devtools/build/lib/exec/SpawnRunner.java
index af391d5426..2fcfb05817 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SpawnRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SpawnRunner.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.exec;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
+import com.google.devtools.build.lib.actions.ArtifactPathResolver;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.MetadataProvider;
import com.google.devtools.build.lib.actions.Spawn;
@@ -168,6 +169,11 @@ public interface SpawnRunner {
// directories? Or maybe we need a separate method to return the set of directories?
ArtifactExpander getArtifactExpander();
+ /** The {@link ArtifactPathResolver} to use when directly writing output files. */
+ default ArtifactPathResolver getPathResolver() {
+ return ArtifactPathResolver.IDENTITY;
+ }
+
/**
* All implementations must call this method before writing to the provided stdout / stderr or
* to any of the output file locations. This method is used to coordinate - implementations