aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java79
-rw-r--r--src/main/java/com/google/devtools/build/lib/actions/Executor.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/ExecutableSymlinkAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/BlazeExecutor.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java58
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java13
-rw-r--r--src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java16
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java28
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java17
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java20
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/cpp/WriteBuildInfoHeaderAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/WriteBuildInfoPropertiesAction.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java9
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java5
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java3
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java14
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxStrategy.java8
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java2
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java10
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java15
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java15
38 files changed, 227 insertions, 221 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
index e8762ef945..5fc975154e 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ActionExecutionContext.java
@@ -15,12 +15,21 @@
package com.google.devtools.build.lib.actions;
import com.google.common.collect.ImmutableMap;
+import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.Artifact.ArtifactExpander;
+import com.google.devtools.build.lib.actions.Executor.ActionContext;
import com.google.devtools.build.lib.actions.cache.MetadataHandler;
+import com.google.devtools.build.lib.cmdline.Label;
+import com.google.devtools.build.lib.events.Event;
+import com.google.devtools.build.lib.events.EventHandler;
+import com.google.devtools.build.lib.events.EventKind;
+import com.google.devtools.build.lib.util.Clock;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.io.FileOutErr;
+import com.google.devtools.build.lib.vfs.Path;
import com.google.devtools.build.skyframe.SkyFunction;
import com.google.devtools.build.skyframe.SkyFunction.Environment;
+import com.google.devtools.common.options.OptionsClassProvider;
import java.io.Closeable;
import java.io.IOException;
import java.util.Map;
@@ -110,8 +119,74 @@ public class ActionExecutionContext implements Closeable {
return metadataHandler;
}
- public Executor getExecutor() {
- return executor;
+ public Path getExecRoot() {
+ return executor.getExecRoot();
+ }
+
+ /**
+ * Returns whether failures should have verbose error messages.
+ */
+ public boolean getVerboseFailures() {
+ return executor.getVerboseFailures();
+ }
+
+ /**
+ * Returns the command line options of the Blaze command being executed.
+ */
+ public OptionsClassProvider getOptions() {
+ return executor.getOptions();
+ }
+
+ public Clock getClock() {
+ return executor.getClock();
+ }
+
+ public EventBus getEventBus() {
+ return executor.getEventBus();
+ }
+
+ public EventHandler getEventHandler() {
+ return executor.getEventHandler();
+ }
+
+ /**
+ * Looks up and returns an action context implementation of the given interface type.
+ */
+ public <T extends ActionContext> T getContext(Class<? extends T> type) {
+ return executor.getContext(type);
+ }
+
+ /**
+ * Returns the action context implementation for spawn actions with a given mnemonic.
+ */
+ public SpawnActionContext getSpawnActionContext(String mnemonic) {
+ return executor.getSpawnActionContext(mnemonic);
+ }
+
+ /**
+ * Whether this Executor reports subcommands. If not, reportSubcommand has no effect.
+ * This is provided so the caller of reportSubcommand can avoid wastefully constructing the
+ * subcommand string.
+ */
+ public boolean reportsSubcommands() {
+ return executor.reportsSubcommands();
+ }
+
+ /**
+ * Report a subcommand event to this Executor's Reporter and, if action
+ * logging is enabled, post it on its EventBus.
+ */
+ public void reportSubcommand(Spawn spawn) {
+ String reason;
+ ActionOwner owner = spawn.getResourceOwner().getOwner();
+ if (owner == null) {
+ reason = spawn.getResourceOwner().prettyPrint();
+ } else {
+ reason = Label.print(owner.getLabel())
+ + " [" + spawn.getResourceOwner().prettyPrint() + "]";
+ }
+ String message = Spawns.asShellCommand(spawn, getExecRoot());
+ getEventHandler().handle(Event.of(EventKind.SUBCOMMAND, null, "# " + reason + "\n" + message));
}
public ImmutableMap<String, String> getClientEnv() {
diff --git a/src/main/java/com/google/devtools/build/lib/actions/Executor.java b/src/main/java/com/google/devtools/build/lib/actions/Executor.java
index ee2e7029f2..e4a52d8dcb 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/Executor.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/Executor.java
@@ -80,12 +80,6 @@ public interface Executor {
boolean reportsSubcommands();
/**
- * Report a subcommand event to this Executor's Reporter and, if action
- * logging is enabled, post it on its EventBus.
- */
- void reportSubcommand(Spawn spawn);
-
- /**
* An event listener to report messages to. Errors that signal a action failure should
* use ActionExecutionException.
*/
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
index 7004e29b92..0981efe719 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/SourceManifestAction.java
@@ -122,7 +122,7 @@ public final class SourceManifestAction extends AbstractFileWriteAction {
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException {
final Map<PathFragment, Artifact> runfilesInputs =
- runfiles.getRunfilesInputs(ctx.getExecutor().getEventHandler(), getOwner().getLocation());
+ runfiles.getRunfilesInputs(ctx.getEventHandler(), getOwner().getLocation());
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java
index ad6956299d..d0050ba7fd 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/AbstractFileWriteAction.java
@@ -22,7 +22,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.cmdline.Label;
import java.io.IOException;
import java.io.OutputStream;
@@ -58,13 +57,14 @@ public abstract class AbstractFileWriteAction extends AbstractAction {
public final void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
try {
- getStrategy(actionExecutionContext.getExecutor()).exec(this, actionExecutionContext);
+ getStrategy(actionExecutionContext).exec(this, actionExecutionContext);
} catch (ExecException e) {
throw e.toActionExecutionException(
"Writing file for rule '" + Label.print(getOwner().getLabel()) + "'",
- actionExecutionContext.getExecutor().getVerboseFailures(), this);
+ actionExecutionContext.getVerboseFailures(),
+ this);
}
- afterWrite(actionExecutionContext.getExecutor());
+ afterWrite(actionExecutionContext);
}
/**
@@ -78,9 +78,9 @@ public abstract class AbstractFileWriteAction extends AbstractAction {
/**
* This hook is called after the File has been successfully written to disk.
*
- * @param executor the Executor.
+ * @param actionExecutionContext the execution context
*/
- protected void afterWrite(Executor executor) {
+ protected void afterWrite(ActionExecutionContext actionExecutionContext) {
}
@Override
@@ -102,8 +102,8 @@ public abstract class AbstractFileWriteAction extends AbstractAction {
return true;
}
- private FileWriteActionContext getStrategy(Executor executor) {
- return executor.getContext(FileWriteActionContext.class);
+ private FileWriteActionContext getStrategy(ActionExecutionContext actionExecutionContext) {
+ return actionExecutionContext.getContext(FileWriteActionContext.class);
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ExecutableSymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ExecutableSymlinkAction.java
index 027e119e8d..17ed755306 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ExecutableSymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ExecutableSymlinkAction.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.vfs.Path;
-
import java.io.IOException;
/**
@@ -36,8 +35,7 @@ public final class ExecutableSymlinkAction extends SymlinkAction {
@Override
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException {
- Path inputPath = actionExecutionContext.getExecutor().getExecRoot().getRelative(
- getInputPath());
+ Path inputPath = actionExecutionContext.getExecRoot().getRelative(getInputPath());
try {
// Validate that input path is a file with the executable bit is set.
if (!inputPath.isFile()) {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
index 26eeadc3ff..8efe29ffef 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/PopulateTreeArtifactAction.java
@@ -31,7 +31,6 @@ import com.google.devtools.build.lib.actions.Artifact.TreeFileArtifact;
import com.google.devtools.build.lib.actions.ArtifactPrefixConflictException;
import com.google.devtools.build.lib.actions.BaseSpawn;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.RunfilesSupplier;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
@@ -154,7 +153,6 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
@Override
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
Spawn spawn;
// Create a spawn to unzip the archive file into the output TreeArtifact.
@@ -191,11 +189,11 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
// Execute the spawn.
try {
- getContext(executor).exec(spawn, actionExecutionContext);
+ getContext(actionExecutionContext).exec(spawn, actionExecutionContext);
} catch (ExecException e) {
throw e.toActionExecutionException(
getMnemonic() + " action failed for target: " + getOwner().getLabel(),
- executor.getVerboseFailures(),
+ actionExecutionContext.getVerboseFailures(),
this);
}
@@ -231,8 +229,8 @@ public final class PopulateTreeArtifactAction extends AbstractAction {
return true;
}
- private SpawnActionContext getContext(Executor executor) {
- return executor.getSpawnActionContext(getMnemonic());
+ private SpawnActionContext getContext(ActionExecutionContext actionExecutionContext) {
+ return actionExecutionContext.getSpawnActionContext(getMnemonic());
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
index 8ee9c993ea..11e52d2ef4 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SpawnAction.java
@@ -37,7 +37,6 @@ import com.google.devtools.build.lib.actions.CompositeRunfilesSupplier;
import com.google.devtools.build.lib.actions.EmptyRunfilesSupplier;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionInfoSpecifier;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.RunfilesSupplier;
@@ -260,14 +259,13 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
*/
protected void internalExecute(
ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException {
- getContext(actionExecutionContext.getExecutor())
+ getContext(actionExecutionContext)
.exec(getSpawn(actionExecutionContext.getClientEnv()), actionExecutionContext);
}
@Override
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
try {
internalExecute(actionExecutionContext);
} catch (ExecException e) {
@@ -283,7 +281,8 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
failMessage = "error executing shell command: " + "'"
+ truncate(Iterables.get(argv.arguments(), 2), 200) + "'";
}
- throw e.toActionExecutionException(failMessage, executor.getVerboseFailures(), this);
+ throw e.toActionExecutionException(
+ failMessage, actionExecutionContext.getVerboseFailures(), this);
}
}
@@ -434,8 +433,8 @@ public class SpawnAction extends AbstractAction implements ExecutionInfoSpecifie
return executionInfo;
}
- protected SpawnActionContext getContext(Executor executor) {
- return executor.getSpawnActionContext(getMnemonic());
+ protected SpawnActionContext getContext(ActionExecutionContext actionExecutionContext) {
+ return actionExecutionContext.getSpawnActionContext(getMnemonic());
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
index 6cace67a03..b79f152fb7 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkAction.java
@@ -104,8 +104,8 @@ public class SymlinkAction extends AbstractAction {
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException {
try {
- getOutputPath().createSymbolicLink(
- actionExecutionContext.getExecutor().getExecRoot().getRelative(inputPath));
+ getOutputPath()
+ .createSymbolicLink(actionExecutionContext.getExecRoot().getRelative(inputPath));
} catch (IOException e) {
throw new ActionExecutionException("failed to create symbolic link '"
+ Iterables.getOnlyElement(getOutputs()).prettyPrint()
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
index a7e82a1d3f..82c25314ef 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/SymlinkTreeAction.java
@@ -113,11 +113,9 @@ public final class SymlinkTreeAction extends AbstractAction {
}
@Override
- public void execute(
- ActionExecutionContext actionExecutionContext)
- throws ActionExecutionException, InterruptedException {
+ public void execute(ActionExecutionContext actionExecutionContext)
+ throws ActionExecutionException, InterruptedException {
actionExecutionContext
- .getExecutor()
.getContext(SymlinkTreeActionContext.class)
.createSymlinks(this, actionExecutionContext, shellEnviroment, enableRunfiles);
}
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
index 186c42973d..80618a7aba 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelWorkspaceStatusModule.java
@@ -116,7 +116,6 @@ public class BazelWorkspaceStatusModule extends BlazeModule {
try {
if (this.getWorkspaceStatusCommand != null) {
actionExecutionContext
- .getExecutor()
.getEventHandler()
.handle(
Event.progress(
@@ -224,7 +223,7 @@ public class BazelWorkspaceStatusModule extends BlazeModule {
Map<String, String> overallMap = new TreeMap<>();
overallMap.putAll(volatileMap);
overallMap.putAll(stableMap);
- actionExecutionContext.getExecutor().getEventBus().post(new BuildInfoEvent(overallMap));
+ actionExecutionContext.getEventBus().post(new BuildInfoEvent(overallMap));
// Only update the stableStatus contents if they are different than what we have on disk.
// This is to preserve the old file's mtime so that we do not generate an unnecessary dirty
diff --git a/src/main/java/com/google/devtools/build/lib/exec/BlazeExecutor.java b/src/main/java/com/google/devtools/build/lib/exec/BlazeExecutor.java
index a9cb8b094d..1388376b9d 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/BlazeExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/BlazeExecutor.java
@@ -15,18 +15,14 @@ package com.google.devtools.build.lib.exec;
import com.google.common.collect.ImmutableMap;
import com.google.common.eventbus.EventBus;
-import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ExecutorInitException;
-import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
-import com.google.devtools.build.lib.actions.Spawns;
-import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.concurrent.ThreadSafety.ThreadSafe;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.events.EventHandler;
-import com.google.devtools.build.lib.events.EventKind;
+import com.google.devtools.build.lib.events.ExtendedEventHandler;
import com.google.devtools.build.lib.events.Reporter;
import com.google.devtools.build.lib.profiler.Profiler;
import com.google.devtools.build.lib.profiler.ProfilerTask;
@@ -149,7 +145,7 @@ public final class BlazeExecutor implements Executor {
}
@Override
- public EventHandler getEventHandler() {
+ public ExtendedEventHandler getEventHandler() {
return reporter;
}
@@ -168,20 +164,6 @@ public final class BlazeExecutor implements Executor {
return showSubcommands;
}
- @Override
- public void reportSubcommand(Spawn spawn) {
- String reason;
- ActionOwner owner = spawn.getResourceOwner().getOwner();
- if (owner == null) {
- reason = spawn.getResourceOwner().prettyPrint();
- } else {
- reason = Label.print(owner.getLabel())
- + " [" + spawn.getResourceOwner().prettyPrint() + "]";
- }
- String message = Spawns.asShellCommand(spawn, getExecRoot());
- reporter.handle(Event.of(EventKind.SUBCOMMAND, null, "# " + reason + "\n" + message));
- }
-
/**
* This method is called before the start of the execution phase of each
* build request.
diff --git a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
index cbbabe4b21..5189f289f1 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/StandaloneTestStrategy.java
@@ -21,7 +21,6 @@ import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.EnvironmentalExecException;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.SimpleSpawn;
import com.google.devtools.build.lib.actions.Spawn;
@@ -87,7 +86,7 @@ public class StandaloneTestStrategy extends TestStrategy {
@Override
public void exec(TestRunnerAction action, ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException {
- Path execRoot = actionExecutionContext.getExecutor().getExecRoot();
+ Path execRoot = actionExecutionContext.getExecRoot();
Path coverageDir = execRoot.getRelative(action.getCoverageDirectory());
Path runfilesDir =
getLocalRunfilesDirectory(
@@ -133,8 +132,6 @@ public class StandaloneTestStrategy extends TestStrategy {
ImmutableList.copyOf(action.getSpawnOutputs()),
localResourceUsage);
- Executor executor = actionExecutionContext.getExecutor();
-
TestResultData.Builder dataBuilder = TestResultData.newBuilder();
try {
@@ -153,7 +150,7 @@ public class StandaloneTestStrategy extends TestStrategy {
data.getStatus() != BlazeTestStatus.PASSED && attempt < maxAttempts;
attempt++) {
processFailedTestAttempt(
- attempt, executor, action, dataBuilder, data, actionExecutionContext.getFileOutErr());
+ attempt, actionExecutionContext, action, dataBuilder, data);
data =
executeTestAttempt(
action,
@@ -172,7 +169,7 @@ public class StandaloneTestStrategy extends TestStrategy {
if (resolvedPaths.getXmlOutputPath().exists()) {
testOutputsBuilder.add(Pair.of("test.xml", resolvedPaths.getXmlOutputPath()));
}
- executor
+ actionExecutionContext
.getEventBus()
.post(
new TestAttempt(
@@ -185,18 +182,17 @@ public class StandaloneTestStrategy extends TestStrategy {
true));
finalizeTest(actionExecutionContext, action, dataBuilder.build());
} catch (IOException e) {
- executor.getEventHandler().handle(Event.error("Caught I/O exception: " + e));
+ actionExecutionContext.getEventHandler().handle(Event.error("Caught I/O exception: " + e));
throw new EnvironmentalExecException("unexpected I/O exception", e);
}
}
private void processFailedTestAttempt(
int attempt,
- Executor executor,
+ ActionExecutionContext actionExecutionContext,
TestRunnerAction action,
Builder dataBuilder,
- TestResultData data,
- FileOutErr outErr)
+ TestResultData data)
throws IOException {
ImmutableList.Builder<Pair<String, Path>> testOutputsBuilder = new ImmutableList.Builder<>();
// Rename outputs
@@ -211,7 +207,7 @@ public class StandaloneTestStrategy extends TestStrategy {
action.getTestLog().getPath().renameTo(testLog);
testOutputsBuilder.add(Pair.of("test.log", testLog));
}
- ResolvedPaths resolvedPaths = action.resolve(executor.getExecRoot());
+ ResolvedPaths resolvedPaths = action.resolve(actionExecutionContext.getExecRoot());
if (resolvedPaths.getXmlOutputPath().exists()) {
Path destinationPath = attemptsDir.getChild(attemptPrefix + ".xml");
resolvedPaths.getXmlOutputPath().renameTo(destinationPath);
@@ -221,7 +217,7 @@ public class StandaloneTestStrategy extends TestStrategy {
dataBuilder.addFailedLogs(testLog.toString());
dataBuilder.addTestTimes(data.getTestTimes(0));
dataBuilder.addAllTestProcessTimes(data.getTestProcessTimesList());
- executor
+ actionExecutionContext
.getEventBus()
.post(
new TestAttempt(
@@ -232,7 +228,7 @@ public class StandaloneTestStrategy extends TestStrategy {
data.getRunDurationMillis(),
testOutputsBuilder.build(),
false));
- processTestOutput(executor, outErr, new TestResult(action, data, false), testLog);
+ processTestOutput(actionExecutionContext, new TestResult(action, data, false), testLog);
}
private void processLastTestAttempt(int attempt, Builder dataBuilder, TestResultData data) {
@@ -305,20 +301,19 @@ public class StandaloneTestStrategy extends TestStrategy {
Spawn spawn,
ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException, IOException {
- Executor executor = actionExecutionContext.getExecutor();
Closeable streamed = null;
Path testLogPath = action.getTestLog().getPath();
TestResultData.Builder builder = TestResultData.newBuilder();
- long startTime = executor.getClock().currentTimeMillis();
- SpawnActionContext spawnActionContext = executor.getSpawnActionContext(action.getMnemonic());
+ long startTime = actionExecutionContext.getClock().currentTimeMillis();
+ SpawnActionContext spawnActionContext =
+ actionExecutionContext.getSpawnActionContext(action.getMnemonic());
try {
try {
if (executionOptions.testOutput.equals(TestOutputFormat.STREAMED)) {
streamed =
new StreamedTestOutput(
- Reporter.outErrForReporter(
- actionExecutionContext.getExecutor().getEventHandler()),
+ Reporter.outErrForReporter(actionExecutionContext.getEventHandler()),
testLogPath);
}
spawnActionContext.exec(spawn, actionExecutionContext);
@@ -341,7 +336,7 @@ public class StandaloneTestStrategy extends TestStrategy {
throw e;
}
} finally {
- long duration = executor.getClock().currentTimeMillis() - startTime;
+ long duration = actionExecutionContext.getClock().currentTimeMillis() - startTime;
builder.setStartTimeMillisEpoch(startTime);
builder.addTestTimes(duration);
builder.addTestProcessTimes(duration);
@@ -354,7 +349,7 @@ public class StandaloneTestStrategy extends TestStrategy {
TestCase details =
parseTestResult(
action
- .resolve(actionExecutionContext.getExecutor().getExecRoot())
+ .resolve(actionExecutionContext.getExecRoot())
.getXmlOutputPath());
if (details != null) {
builder.setTestCase(details);
@@ -376,26 +371,30 @@ public class StandaloneTestStrategy extends TestStrategy {
* parallel test outputs will not get interleaved.
*/
protected void processTestOutput(
- Executor executor, FileOutErr outErr, TestResult result, Path testLogPath)
- throws IOException {
- Path testOutput = executor.getExecRoot().getRelative(testLogPath.asFragment());
+ ActionExecutionContext actionExecutionContext, TestResult result, Path testLogPath)
+ throws IOException {
+ Path testOutput = actionExecutionContext.getExecRoot().getRelative(testLogPath.asFragment());
boolean isPassed = result.getData().getTestPassed();
try {
if (TestLogHelper.shouldOutputTestLog(executionOptions.testOutput, isPassed)) {
- TestLogHelper.writeTestLog(testOutput, result.getTestName(), outErr.getOutputStream());
+ TestLogHelper.writeTestLog(
+ testOutput,
+ result.getTestName(),
+ actionExecutionContext.getFileOutErr().getOutputStream());
}
} finally {
if (isPassed) {
- executor.getEventHandler().handle(Event.of(EventKind.PASS, null, result.getTestName()));
+ actionExecutionContext
+ .getEventHandler().handle(Event.of(EventKind.PASS, null, result.getTestName()));
} else {
if (result.getData().getStatus() == BlazeTestStatus.TIMEOUT) {
- executor
+ actionExecutionContext
.getEventHandler()
.handle(
Event.of(
EventKind.TIMEOUT, null, result.getTestName() + " (see " + testOutput + ")"));
} else {
- executor
+ actionExecutionContext
.getEventHandler()
.handle(
Event.of(
@@ -409,11 +408,10 @@ public class StandaloneTestStrategy extends TestStrategy {
ActionExecutionContext actionExecutionContext, TestRunnerAction action, TestResultData data)
throws IOException, ExecException {
TestResult result = new TestResult(action, data, false);
- postTestResult(actionExecutionContext.getExecutor(), result);
+ postTestResult(actionExecutionContext, result);
processTestOutput(
- actionExecutionContext.getExecutor(),
- actionExecutionContext.getFileOutErr(),
+ actionExecutionContext,
result,
result.getTestLogPath());
// TODO(bazel-team): handle --test_output=errors, --test_output=all.
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java
index 2fb8dd02e0..2299faee87 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeHelper.java
@@ -117,8 +117,8 @@ public final class SymlinkTreeHelper {
if (enableRunfiles) {
List<String> args =
getSpawnArgumentList(
- actionExecutionContext.getExecutor().getExecRoot(), binTools);
- actionExecutionContext.getExecutor().getSpawnActionContext(action.getMnemonic()).exec(
+ actionExecutionContext.getExecRoot(), binTools);
+ actionExecutionContext.getSpawnActionContext(action.getMnemonic()).exec(
new BaseSpawn.Local(args, shellEnvironment, action, RESOURCE_SET),
actionExecutionContext);
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java
index 6bde8f6952..8fa18debb9 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/SymlinkTreeStrategy.java
@@ -18,7 +18,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.analysis.actions.SymlinkTreeAction;
import com.google.devtools.build.lib.analysis.actions.SymlinkTreeActionContext;
import com.google.devtools.build.lib.analysis.config.BinTools;
@@ -48,7 +47,6 @@ public final class SymlinkTreeStrategy implements SymlinkTreeActionContext {
ImmutableMap<String, String> shellEnvironment,
boolean enableRunfiles)
throws ActionExecutionException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
try (AutoProfiler p =
AutoProfiler.logged(
"running " + action.prettyPrint(), LOG, /*minTimeForLoggingInMilliseconds=*/ 100)) {
@@ -71,7 +69,7 @@ public final class SymlinkTreeStrategy implements SymlinkTreeActionContext {
}
} catch (ExecException e) {
throw e.toActionExecutionException(
- action.getProgressMessage(), executor.getVerboseFailures(), action);
+ action.getProgressMessage(), actionExecutionContext.getVerboseFailures(), action);
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java
index 8b0450a599..3ccf81eec0 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/TestStrategy.java
@@ -24,7 +24,6 @@ import com.google.common.io.Closeables;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.analysis.config.BinTools;
import com.google.devtools.build.lib.events.Event;
import com.google.devtools.build.lib.profiler.Profiler;
@@ -235,9 +234,10 @@ public abstract class TestStrategy implements TestActionContext {
/*
* Finalize test run: persist the result, and post on the event bus.
*/
- protected void postTestResult(Executor executor, TestResult result) throws IOException {
+ protected void postTestResult(ActionExecutionContext actionExecutionContext, TestResult result)
+ throws IOException {
result.getTestAction().saveCacheStatus(result.getData());
- executor.getEventBus().post(result);
+ actionExecutionContext.getEventBus().post(result);
}
/**
@@ -365,8 +365,6 @@ public abstract class TestStrategy implements TestActionContext {
ImmutableMap<String, String> shellEnvironment,
boolean enableRunfiles)
throws ExecException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
-
TestTargetExecutionSettings execSettings = testAction.getExecutionSettings();
Path outputManifest = runfilesDir.getRelative("MANIFEST");
try {
@@ -383,7 +381,7 @@ public abstract class TestStrategy implements TestActionContext {
// Ignore it - we will just try to create runfiles directory.
}
- executor
+ actionExecutionContext
.getEventHandler()
.handle(
Event.progress(
@@ -395,7 +393,8 @@ public abstract class TestStrategy implements TestActionContext {
.createSymlinks(
testAction, actionExecutionContext, binTools, shellEnvironment, enableRunfiles);
- executor.getEventHandler().handle(Event.progress(testAction.getProgressMessage()));
+ actionExecutionContext.getEventHandler()
+ .handle(Event.progress(testAction.getProgressMessage()));
}
/** In rare cases, we might write something to stderr. Append it to the real test.log. */
diff --git a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
index 70623b19e5..a8461e4694 100644
--- a/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/remote/RemoteSpawnStrategy.java
@@ -22,7 +22,6 @@ import com.google.devtools.build.lib.actions.ActionInputFileCache;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.actions.Spawns;
@@ -172,14 +171,12 @@ final class RemoteSpawnStrategy implements SpawnActionContext {
throw new UserExecException("Unexpected IO error.", e);
} catch (UnsupportedOperationException e) {
actionExecutionContext
- .getExecutor()
.getEventHandler()
.handle(
Event.warn(
spawn.getMnemonic() + " unsupported operation for action cache (" + e + ")"));
} catch (StatusRuntimeException e) {
actionExecutionContext
- .getExecutor()
.getEventHandler()
.handle(Event.warn(spawn.getMnemonic() + " failed uploading results (" + e + ")"));
}
@@ -222,8 +219,7 @@ final class RemoteSpawnStrategy implements SpawnActionContext {
throws ExecException, InterruptedException {
ActionKey actionKey = null;
String mnemonic = spawn.getMnemonic();
- Executor executor = actionExecutionContext.getExecutor();
- EventHandler eventHandler = executor.getEventHandler();
+ EventHandler eventHandler = actionExecutionContext.getEventHandler();
RemoteActionCache remoteCache = null;
GrpcRemoteExecutor workExecutor = null;
@@ -253,10 +249,10 @@ final class RemoteSpawnStrategy implements SpawnActionContext {
fallbackStrategy.exec(spawn, actionExecutionContext);
return;
}
- if (executor.reportsSubcommands()) {
- executor.reportSubcommand(spawn);
+ if (actionExecutionContext.reportsSubcommands()) {
+ actionExecutionContext.reportSubcommand(spawn);
}
- executor
+ actionExecutionContext
.getEventBus()
.post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "remote"));
@@ -269,7 +265,7 @@ final class RemoteSpawnStrategy implements SpawnActionContext {
spawn,
actionExecutionContext.getArtifactExpander(),
actionExecutionContext.getActionInputFileCache(),
- actionExecutionContext.getExecutor().getContext(FilesetActionContext.class));
+ actionExecutionContext.getContext(FilesetActionContext.class));
TreeNode inputRoot = repository.buildFromActionInputs(inputMap);
repository.computeMerkleDigests(inputRoot);
Command command = buildCommand(spawn.getArguments(), spawn.getEnvironment());
@@ -325,7 +321,7 @@ final class RemoteSpawnStrategy implements SpawnActionContext {
passRemoteOutErr(remoteCache, result, actionExecutionContext.getFileOutErr());
remoteCache.downloadAllResults(result, execRoot);
if (result.getExitCode() != 0) {
- String cwd = executor.getExecRoot().getPathString();
+ String cwd = actionExecutionContext.getExecRoot().getPathString();
String message =
CommandFailureUtils.describeCommandFailure(
verboseFailures, spawn.getArguments(), spawn.getEnvironment(), cwd);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java b/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java
index 4d48cf9bad..ed1b644175 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/android/WriteAdbArgsAction.java
@@ -24,7 +24,6 @@ import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
import com.google.devtools.common.options.OptionsBase;
-
import java.io.IOException;
import java.io.OutputStream;
import java.io.PrintStream;
@@ -99,14 +98,14 @@ public final class WriteAdbArgsAction extends AbstractFileWriteAction {
@Override
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException, InterruptedException, ExecException {
- Options options = ctx.getExecutor().getOptions().getOptions(Options.class);
+ Options options = ctx.getOptions().getOptions(Options.class);
final List<String> args = options.adbArgs;
final String adb = options.adb;
final int adbJobs = options.adbJobs;
final String incrementalInstallVerbosity = options.incrementalInstallVerbosity;
final StartType start = options.start;
- final String userHomeDirectory = ctx.getExecutor().getContext(
- WriteAdbArgsActionContext.class).getUserHomeDirectory();
+ final String userHomeDirectory =
+ ctx.getContext(WriteAdbArgsActionContext.class).getUserHomeDirectory();
return new DeterministicWriter() {
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
index 3adb10d216..d384928737 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppCompileAction.java
@@ -35,7 +35,6 @@ import com.google.devtools.build.lib.actions.CommandAction;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionInfoSpecifier;
import com.google.devtools.build.lib.actions.ExecutionRequirements;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.extra.CppCompileInfo;
import com.google.devtools.build.lib.actions.extra.EnvironmentVariable;
@@ -449,23 +448,21 @@ public class CppCompileAction extends AbstractAction
@Override
public Iterable<Artifact> discoverInputs(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
Iterable<Artifact> initialResult;
actionExecutionContext
- .getExecutor()
.getEventBus()
.post(ActionStatusMessage.analysisStrategy(this));
try {
initialResult =
- executor
+ actionExecutionContext
.getContext(actionContext)
.findAdditionalInputs(
this, actionExecutionContext, cppSemantics.getIncludeProcessing());
} catch (ExecException e) {
throw e.toActionExecutionException(
"Include scanning of rule '" + getOwner().getLabel() + "'",
- executor.getVerboseFailures(),
+ actionExecutionContext.getVerboseFailures(),
this);
}
@@ -506,7 +503,7 @@ public class CppCompileAction extends AbstractAction
// to the set of inputs the caller may need to be aware of.
Collection<Artifact> result = new HashSet<>();
ArtifactResolver artifactResolver =
- executor.getContext(IncludeScanningContext.class).getArtifactResolver();
+ actionExecutionContext.getContext(IncludeScanningContext.class).getArtifactResolver();
for (Artifact artifact : initialResult) {
result.addAll(specialInputsHandler.getInputsForIncludedFile(artifact, artifactResolver));
}
@@ -1156,7 +1153,6 @@ public class CppCompileAction extends AbstractAction
throws ActionExecutionException, InterruptedException {
setModuleFileFlags();
- Executor executor = actionExecutionContext.getExecutor();
CppCompileActionContext.Reply reply;
ShowIncludesFilter showIncludesFilterForStdout = null;
ShowIncludesFilter showIncludesFilterForStderr = null;
@@ -1169,16 +1165,20 @@ public class CppCompileAction extends AbstractAction
actionExecutionContext.getFileOutErr().setErrorFilter(showIncludesFilterForStderr);
}
try {
- reply = executor.getContext(actionContext).execWithReply(this, actionExecutionContext);
+ reply = actionExecutionContext.getContext(actionContext)
+ .execWithReply(this, actionExecutionContext);
} catch (ExecException e) {
- throw e.toActionExecutionException("C++ compilation of rule '" + getOwner().getLabel() + "'",
- executor.getVerboseFailures(), this);
+ throw e.toActionExecutionException(
+ "C++ compilation of rule '" + getOwner().getLabel() + "'",
+ actionExecutionContext.getVerboseFailures(),
+ this);
}
ensureCoverageNotesFilesExist();
// This is the .d file scanning part.
- IncludeScanningContext scanningContext = executor.getContext(IncludeScanningContext.class);
- Path execRoot = executor.getExecRoot();
+ IncludeScanningContext scanningContext =
+ actionExecutionContext.getContext(IncludeScanningContext.class);
+ Path execRoot = actionExecutionContext.getExecRoot();
NestedSet<Artifact> discoveredInputs;
if (featureConfiguration.isEnabled(CppRuleClasses.PARSE_SHOWINCLUDES)) {
@@ -1205,7 +1205,7 @@ public class CppCompileAction extends AbstractAction
validateInclusions(
discoveredInputs,
actionExecutionContext.getArtifactExpander(),
- executor.getEventHandler());
+ actionExecutionContext.getEventHandler());
}
}
@@ -1322,7 +1322,7 @@ public class CppCompileAction extends AbstractAction
throws ActionExecutionException, InterruptedException {
Iterable<Artifact> scannedIncludes;
try {
- scannedIncludes = actionExecutionContext.getExecutor().getContext(actionContext)
+ scannedIncludes = actionExecutionContext.getContext(actionContext)
.findAdditionalInputs(this, actionExecutionContext, cppSemantics.getIncludeProcessing());
} catch (ExecException e) {
throw e.toActionExecutionException(this);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
index 6399b35ebf..9122b8c539 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppLinkAction.java
@@ -32,7 +32,6 @@ import com.google.devtools.build.lib.actions.CommandAction;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionInfoSpecifier;
import com.google.devtools.build.lib.actions.ExecutionRequirements;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.SimpleSpawn;
import com.google.devtools.build.lib.actions.Spawn;
@@ -296,13 +295,11 @@ public final class CppLinkAction extends AbstractAction
@Override
@ThreadCompatible
- public void execute(
- ActionExecutionContext actionExecutionContext)
- throws ActionExecutionException, InterruptedException {
+ public void execute(ActionExecutionContext actionExecutionContext)
+ throws ActionExecutionException, InterruptedException {
if (fake) {
executeFake();
} else {
- Executor executor = actionExecutionContext.getExecutor();
try {
// Collect input files
List<ActionInput> allInputs = new ArrayList<>();
@@ -322,11 +319,13 @@ public final class CppLinkAction extends AbstractAction
ImmutableList.copyOf(allInputs),
getOutputs().asList(),
estimateResourceConsumptionLocal());
- executor.getSpawnActionContext(getMnemonic()).exec(
- spawn, actionExecutionContext);
+ actionExecutionContext.getSpawnActionContext(getMnemonic())
+ .exec(spawn, actionExecutionContext);
} catch (ExecException e) {
- throw e.toActionExecutionException("Linking of rule '" + getOwner().getLabel() + "'",
- executor.getVerboseFailures(), this);
+ throw e.toActionExecutionException(
+ "Linking of rule '" + getOwner().getLabel() + "'",
+ actionExecutionContext.getVerboseFailures(),
+ this);
}
}
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
index 6a16ea78e3..e66fae1f63 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/ExtractInclusionAction.java
@@ -21,7 +21,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import java.io.IOException;
@@ -67,8 +66,8 @@ final class ExtractInclusionAction extends AbstractAction {
@Override
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
- IncludeScanningContext context = executor.getContext(IncludeScanningContext.class);
+ IncludeScanningContext context =
+ actionExecutionContext.getContext(IncludeScanningContext.class);
try {
context.extractIncludes(actionExecutionContext, this, getPrimaryInput(),
getPrimaryOutput());
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
index 31363c3cf1..d36af24a4a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/FakeCppCompileAction.java
@@ -27,7 +27,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionException;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.cmdline.Label;
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
@@ -133,21 +132,22 @@ public class FakeCppCompileAction extends CppCompileAction {
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
setModuleFileFlags();
- Executor executor = actionExecutionContext.getExecutor();
-
// First, do a normal compilation, to generate the ".d" file. The generated object file is built
// to a temporary location (tempOutputFile) and ignored afterwards.
LOG.info("Generating " + getDotdFile());
- CppCompileActionContext context = executor.getContext(actionContext);
+ CppCompileActionContext context = actionExecutionContext.getContext(actionContext);
CppCompileActionContext.Reply reply = null;
try {
reply = context.execWithReply(this, actionExecutionContext);
} catch (ExecException e) {
- throw e.toActionExecutionException("C++ compilation of rule '" + getOwner().getLabel() + "'",
- executor.getVerboseFailures(), this);
+ throw e.toActionExecutionException(
+ "C++ compilation of rule '" + getOwner().getLabel() + "'",
+ actionExecutionContext.getVerboseFailures(),
+ this);
}
- IncludeScanningContext scanningContext = executor.getContext(IncludeScanningContext.class);
- Path execRoot = executor.getExecRoot();
+ IncludeScanningContext scanningContext =
+ actionExecutionContext.getContext(IncludeScanningContext.class);
+ Path execRoot = actionExecutionContext.getExecRoot();
NestedSet<Artifact> discoveredInputs;
if (getDotdFile() == null) {
@@ -184,11 +184,11 @@ public class FakeCppCompileAction extends CppCompileAction {
validateInclusions(
discoveredInputs,
actionExecutionContext.getArtifactExpander(),
- executor.getEventHandler());
+ actionExecutionContext.getEventHandler());
} catch (ActionExecutionException e) {
// TODO(bazel-team): (2009) make this into an error, once most of the current warnings
// are fixed.
- executor.getEventHandler().handle(Event.warn(
+ actionExecutionContext.getEventHandler().handle(Event.warn(
getOwner().getLocation(),
e.getMessage() + ";\n this warning may eventually become an error"));
}
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
index 366bcd47ef..91f88112f7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/SpawnGccStrategy.java
@@ -66,7 +66,6 @@ public class SpawnGccStrategy implements CppCompileActionContext {
action.estimateResourceConsumptionLocal());
actionExecutionContext
- .getExecutor()
.getSpawnActionContext(action.getMnemonic())
.exec(spawn, actionExecutionContext);
return null;
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/WriteBuildInfoHeaderAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/WriteBuildInfoHeaderAction.java
index 4ad655c467..b02376ef7a 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/WriteBuildInfoHeaderAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/WriteBuildInfoHeaderAction.java
@@ -26,7 +26,6 @@ import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
-
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
@@ -83,8 +82,7 @@ public final class WriteBuildInfoHeaderAction extends AbstractFileWriteAction {
@Override
public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException {
- WorkspaceStatusAction.Context context =
- ctx.getExecutor().getContext(WorkspaceStatusAction.Context.class);
+ WorkspaceStatusAction.Context context = ctx.getContext(WorkspaceStatusAction.Context.class);
final Map<String, WorkspaceStatusAction.Key> keys = new LinkedHashMap<>();
if (writeVolatileInfo) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java
index 3fbaeb5fd3..7f4501d189 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genrule/GenRuleAction.java
@@ -69,7 +69,7 @@ public class GenRuleAction extends SpawnAction {
@Override
protected void internalExecute(
ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException {
- EventHandler reporter = actionExecutionContext.getExecutor().getEventHandler();
+ EventHandler reporter = actionExecutionContext.getEventHandler();
checkInputsForDirectories(reporter, actionExecutionContext.getMetadataHandler());
super.internalExecute(actionExecutionContext);
checkOutputsForDirectories(reporter);
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
index 02c072002e..104ef4fcb7 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaHeaderCompileAction.java
@@ -28,7 +28,6 @@ import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.BaseSpawn;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ParameterFile;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.Spawn;
@@ -129,8 +128,7 @@ public class JavaHeaderCompileAction extends SpawnAction {
@Override
protected void internalExecute(ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
- SpawnActionContext context = getContext(executor);
+ SpawnActionContext context = getContext(actionExecutionContext);
try {
context.exec(getDirectSpawn(), actionExecutionContext);
} catch (ExecException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/WriteBuildInfoPropertiesAction.java b/src/main/java/com/google/devtools/build/lib/rules/java/WriteBuildInfoPropertiesAction.java
index 2f1b0a7221..c8bbd147a4 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/WriteBuildInfoPropertiesAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/WriteBuildInfoPropertiesAction.java
@@ -148,8 +148,7 @@ public class WriteBuildInfoPropertiesAction extends AbstractFileWriteAction {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
- WorkspaceStatusAction.Context context =
- ctx.getExecutor().getContext(WorkspaceStatusAction.Context.class);
+ WorkspaceStatusAction.Context context = ctx.getContext(WorkspaceStatusAction.Context.class);
Map<String, String> values = new LinkedHashMap<>();
for (Artifact valueFile : valueArtifacts) {
values.putAll(WorkspaceStatusAction.parseValues(valueFile.getPath()));
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java
index 4ccd3d0aaf..aa2f6ffa9d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcCompileAction.java
@@ -29,7 +29,6 @@ import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ArtifactResolver;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceSet;
import com.google.devtools.build.lib.actions.RunfilesSupplier;
import com.google.devtools.build.lib.actions.Spawn;
@@ -193,7 +192,7 @@ public class ObjcCompileAction extends SpawnAction {
} catch (ExecException e) {
throw e.toActionExecutionException(
"Header thinning of rule '" + getOwner().getLabel() + "'",
- actionExecutionContext.getExecutor().getVerboseFailures(),
+ actionExecutionContext.getVerboseFailures(),
this);
}
} else {
@@ -213,11 +212,11 @@ public class ObjcCompileAction extends SpawnAction {
super.execute(actionExecutionContext);
if (dotdPruningPlan == HeaderDiscovery.DotdPruningMode.USE) {
- Executor executor = actionExecutionContext.getExecutor();
- IncludeScanningContext scanningContext = executor.getContext(IncludeScanningContext.class);
+ IncludeScanningContext scanningContext =
+ actionExecutionContext.getContext(IncludeScanningContext.class);
NestedSet<Artifact> discoveredInputs =
discoverInputsFromDotdFiles(
- executor.getExecRoot(), scanningContext.getArtifactResolver());
+ actionExecutionContext.getExecRoot(), scanningContext.getArtifactResolver());
updateActionInputs(discoveredInputs);
} else {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java
index a38cef2433..8137555ca2 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java
@@ -21,7 +21,6 @@ import com.google.common.eventbus.EventBus;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionOwner;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.NotifyOnActionCacheHit;
import com.google.devtools.build.lib.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
@@ -89,8 +88,8 @@ public final class BaselineCoverageAction extends AbstractFileWriteAction
}
@Override
- protected void afterWrite(Executor executor) {
- notifyAboutBaselineCoverage(executor.getEventBus());
+ protected void afterWrite(ActionExecutionContext actionExecutionContext) {
+ notifyAboutBaselineCoverage(actionExecutionContext.getEventBus());
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
index 5f809dcf02..a9349db769 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/TestRunnerAction.java
@@ -641,8 +641,7 @@ public class TestRunnerAction extends AbstractAction implements NotifyOnActionCa
@Override
public void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
- TestActionContext context =
- actionExecutionContext.getExecutor().getContext(TestActionContext.class);
+ TestActionContext context = actionExecutionContext.getContext(TestActionContext.class);
try {
context.exec(this, actionExecutionContext);
} catch (ExecException e) {
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
index 5798303c1e..e96c417980 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/DarwinSandboxedStrategy.java
@@ -21,7 +21,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.buildtool.BuildRequest;
@@ -162,11 +161,10 @@ public class DarwinSandboxedStrategy extends SandboxStrategy {
ActionExecutionContext actionExecutionContext,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws ExecException, InterruptedException, IOException {
- Executor executor = actionExecutionContext.getExecutor();
- executor
+ actionExecutionContext
.getEventBus()
.post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "darwin-sandbox"));
- SandboxHelpers.reportSubcommand(executor, spawn);
+ SandboxHelpers.reportSubcommand(actionExecutionContext, spawn);
// Each invocation of "exec" gets its own sandbox.
Path sandboxPath = getSandboxRoot();
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 16a4efd1da..ec4a5e5d9b 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -21,7 +21,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.actions.UserExecException;
@@ -114,11 +113,10 @@ public class LinuxSandboxedStrategy extends SandboxStrategy {
ActionExecutionContext actionExecutionContext,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws IOException, ExecException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
- executor
+ actionExecutionContext
.getEventBus()
.post(ActionStatusMessage.runningStrategy(spawn.getResourceOwner(), "linux-sandbox"));
- SandboxHelpers.reportSubcommand(executor, spawn);
+ SandboxHelpers.reportSubcommand(actionExecutionContext, spawn);
// Each invocation of "exec" gets its own sandbox.
Path sandboxPath = getSandboxRoot();
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
index a8f0e8063c..977916cb54 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/ProcessWrapperSandboxedStrategy.java
@@ -19,7 +19,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
import com.google.devtools.build.lib.buildtool.BuildRequest;
@@ -82,13 +81,12 @@ public class ProcessWrapperSandboxedStrategy extends SandboxStrategy {
ActionExecutionContext actionExecutionContext,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws ExecException, InterruptedException, IOException {
- Executor executor = actionExecutionContext.getExecutor();
- executor
+ actionExecutionContext
.getEventBus()
.post(
ActionStatusMessage.runningStrategy(
spawn.getResourceOwner(), "processwrapper-sandbox"));
- SandboxHelpers.reportSubcommand(executor, spawn);
+ SandboxHelpers.reportSubcommand(actionExecutionContext, spawn);
// Each invocation of "exec" gets its own sandbox.
Path sandboxPath = getSandboxRoot();
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java
index 37f2ce8e4c..e7d605fb37 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxHelpers.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionInput;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.analysis.config.BuildConfiguration;
import com.google.devtools.build.lib.buildtool.BuildRequest;
@@ -40,16 +39,17 @@ import java.util.TreeMap;
public final class SandboxHelpers {
static void fallbackToNonSandboxedExecution(
- Spawn spawn, ActionExecutionContext actionExecutionContext, Executor executor)
+ Spawn spawn, ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException {
StandaloneSpawnStrategy standaloneStrategy =
- Preconditions.checkNotNull(executor.getContext(StandaloneSpawnStrategy.class));
+ Preconditions.checkNotNull(
+ actionExecutionContext.getContext(StandaloneSpawnStrategy.class));
standaloneStrategy.exec(spawn, actionExecutionContext);
}
- static void reportSubcommand(Executor executor, Spawn spawn) {
- if (executor.reportsSubcommands()) {
- executor.reportSubcommand(spawn);
+ static void reportSubcommand(ActionExecutionContext actionExecutionContext, Spawn spawn) {
+ if (actionExecutionContext.reportsSubcommands()) {
+ actionExecutionContext.reportSubcommand(spawn);
}
}
@@ -68,7 +68,7 @@ public final class SandboxHelpers {
spawn,
executionContext.getArtifactExpander(),
executionContext.getActionInputFileCache(),
- executionContext.getExecutor().getContext(FilesetActionContext.class));
+ executionContext.getContext(FilesetActionContext.class));
// SpawnInputExpander#getInputMapping uses ArtifactExpander#expandArtifacts to expand
// middlemen and tree artifacts, which expands empty tree artifacts to no entry. However,
// actions that accept TreeArtifacts as inputs generally expect that the empty directory is
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxStrategy.java
index b80066bb56..fe6a581fb2 100644
--- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxStrategy.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ActionExecutionMetadata;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceManager;
import com.google.devtools.build.lib.actions.ResourceManager.ResourceHandle;
import com.google.devtools.build.lib.actions.SandboxedSpawnActionContext;
@@ -93,14 +92,13 @@ abstract class SandboxStrategy implements SandboxedSpawnActionContext {
ActionExecutionContext actionExecutionContext,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws ExecException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
// Certain actions can't run remotely or in a sandbox - pass them on to the standalone strategy.
if (!spawn.isRemotable() || spawn.hasNoSandbox()) {
- SandboxHelpers.fallbackToNonSandboxedExecution(spawn, actionExecutionContext, executor);
+ SandboxHelpers.fallbackToNonSandboxedExecution(spawn, actionExecutionContext);
return;
}
- EventBus eventBus = actionExecutionContext.getExecutor().getEventBus();
+ EventBus eventBus = actionExecutionContext.getEventBus();
ActionExecutionMetadata owner = spawn.getResourceOwner();
eventBus.post(ActionStatusMessage.schedulingStrategy(owner));
try (ResourceHandle ignored =
@@ -126,7 +124,7 @@ abstract class SandboxStrategy implements SandboxedSpawnActionContext {
SandboxRunner runner,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws ExecException, InterruptedException {
- EventHandler eventHandler = actionExecutionContext.getExecutor().getEventHandler();
+ EventHandler eventHandler = actionExecutionContext.getEventHandler();
ExecException execException = null;
OutErr outErr = actionExecutionContext.getFileOutErr();
try {
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
index f80bf85598..df8e8e3a53 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkyframeActionExecutor.java
@@ -732,7 +732,7 @@ public final class SkyframeActionExecutor implements ActionExecutionContextFacto
// Delete the outputs before executing the action, just to ensure that
// the action really does produce the outputs.
try {
- action.prepare(context.getExecutor().getExecRoot());
+ action.prepare(context.getExecRoot());
createOutputDirectories(action);
} catch (IOException e) {
reportError("failed to delete output files before executing action", e, action, null);
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
index de47fe42d2..886fa45a33 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneSpawnStrategy.java
@@ -20,7 +20,6 @@ import com.google.devtools.build.lib.actions.ActionInputFileCache;
import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceManager;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.SpawnActionContext;
@@ -78,7 +77,7 @@ public class StandaloneSpawnStrategy implements SpawnActionContext {
public void exec(final Spawn spawn, final ActionExecutionContext actionExecutionContext)
throws ExecException, InterruptedException {
final int timeoutSeconds = Spawns.getTimeoutSeconds(spawn);
- final EventBus eventBus = actionExecutionContext.getExecutor().getEventBus();
+ final EventBus eventBus = actionExecutionContext.getEventBus();
SpawnExecutionPolicy policy = new SpawnExecutionPolicy() {
@Override
public ActionInputFileCache getActionInputFileCache() {
@@ -107,7 +106,7 @@ public class StandaloneSpawnStrategy implements SpawnActionContext {
spawn,
actionExecutionContext.getArtifactExpander(),
actionExecutionContext.getActionInputFileCache(),
- actionExecutionContext.getExecutor().getContext(FilesetActionContext.class));
+ actionExecutionContext.getContext(FilesetActionContext.class));
}
@Override
@@ -127,9 +126,8 @@ public class StandaloneSpawnStrategy implements SpawnActionContext {
}
};
- Executor executor = actionExecutionContext.getExecutor();
- if (executor.reportsSubcommands()) {
- executor.reportSubcommand(spawn);
+ if (actionExecutionContext.reportsSubcommands()) {
+ actionExecutionContext.reportSubcommand(spawn);
}
try {
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
index e72551bef0..8db06b5c0a 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerSpawnStrategy.java
@@ -31,7 +31,6 @@ import com.google.devtools.build.lib.actions.ActionStatusMessage;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionRequirements;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.ResourceManager;
import com.google.devtools.build.lib.actions.ResourceManager.ResourceHandle;
import com.google.devtools.build.lib.actions.SandboxedSpawnActionContext;
@@ -112,19 +111,19 @@ public final class WorkerSpawnStrategy implements SandboxedSpawnActionContext {
ActionExecutionContext actionExecutionContext,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws ExecException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
if (!spawn.getExecutionInfo().containsKey(ExecutionRequirements.SUPPORTS_WORKERS)
|| !spawn.getExecutionInfo().get(ExecutionRequirements.SUPPORTS_WORKERS).equals("1")) {
StandaloneSpawnStrategy standaloneStrategy =
- Preconditions.checkNotNull(executor.getContext(StandaloneSpawnStrategy.class));
- executor.getEventHandler().handle(
+ Preconditions.checkNotNull(
+ actionExecutionContext.getContext(StandaloneSpawnStrategy.class));
+ actionExecutionContext.getEventHandler().handle(
Event.warn(
String.format(ERROR_MESSAGE_PREFIX + REASON_NO_EXECUTION_INFO, spawn.getMnemonic())));
standaloneStrategy.exec(spawn, actionExecutionContext);
return;
}
- EventBus eventBus = actionExecutionContext.getExecutor().getEventBus();
+ EventBus eventBus = actionExecutionContext.getEventBus();
ActionExecutionMetadata owner = spawn.getResourceOwner();
eventBus.post(ActionStatusMessage.schedulingStrategy(owner));
try (ResourceHandle handle =
@@ -139,10 +138,8 @@ public final class WorkerSpawnStrategy implements SandboxedSpawnActionContext {
ActionExecutionContext actionExecutionContext,
AtomicReference<Class<? extends SpawnActionContext>> writeOutputFiles)
throws ExecException, InterruptedException {
- Executor executor = actionExecutionContext.getExecutor();
-
- if (executor.reportsSubcommands()) {
- executor.reportSubcommand(spawn);
+ if (actionExecutionContext.reportsSubcommands()) {
+ actionExecutionContext.reportSubcommand(spawn);
}
if (Iterables.isEmpty(spawn.getToolFiles())) {
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java
index d3846945b6..6fd225e4bd 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerTestStrategy.java
@@ -23,7 +23,6 @@ import com.google.common.hash.HashCode;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ExecException;
import com.google.devtools.build.lib.actions.ExecutionStrategy;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Spawn;
import com.google.devtools.build.lib.actions.TestExecException;
import com.google.devtools.build.lib.actions.UserExecException;
@@ -104,7 +103,7 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
actionExecutionContext,
addPersistentRunnerVars(spawn.getEnvironment()),
startupArgs,
- actionExecutionContext.getExecutor().getExecRoot());
+ actionExecutionContext.getExecRoot());
}
private TestResultData execInWorker(
@@ -114,10 +113,8 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
List<String> startupArgs,
Path execRoot)
throws ExecException, InterruptedException, IOException {
- Executor executor = actionExecutionContext.getExecutor();
-
// TODO(kush): Remove once we're out of the experimental phase.
- executor
+ actionExecutionContext
.getEventHandler()
.handle(
Event.warn(
@@ -128,7 +125,7 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
Path testLogPath = action.getTestLog().getPath();
Worker worker = null;
WorkerKey key = null;
- long startTime = executor.getClock().currentTimeMillis();
+ long startTime = actionExecutionContext.getClock().currentTimeMillis();
try {
HashCode workerFilesHash = WorkerFilesHash.getWorkerFilesHash(
action.getTools(), actionExecutionContext);
@@ -167,7 +164,7 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
.exception(e)
.logText(data)
.build();
- executor.getEventHandler().handle(Event.warn(errorMessage.toString()));
+ actionExecutionContext.getEventHandler().handle(Event.warn(errorMessage.toString()));
throw e;
}
@@ -188,7 +185,7 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
actionExecutionContext.getFileOutErr().getErrorStream().write(
response.getOutputBytes().toByteArray());
- long duration = executor.getClock().currentTimeMillis() - startTime;
+ long duration = actionExecutionContext.getClock().currentTimeMillis() - startTime;
builder.addTestTimes(duration);
builder.setRunDurationMillis(duration);
if (response.getExitCode() == 0) {
@@ -204,7 +201,7 @@ public class WorkerTestStrategy extends StandaloneTestStrategy {
.addFailedLogs(testLogPath.getPathString());
}
TestCase details = parseTestResult(
- action.resolve(actionExecutionContext.getExecutor().getExecRoot()).getXmlOutputPath());
+ action.resolve(actionExecutionContext.getExecRoot()).getXmlOutputPath());
if (details != null) {
builder.setTestCase(details);
}