Simplifies AbstractWriteFileAction to pass the ActionExecutionContext directly to newDeterministicWriter.
--
MOS_MIGRATED_REVID=115626619
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 dc79737..c782656 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
@@ -17,9 +17,9 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
+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.analysis.actions.AbstractFileWriteAction;
import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
@@ -113,10 +113,10 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor)
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException {
final Map<PathFragment, Artifact> runfilesInputs =
- runfiles.getRunfilesInputs(eventHandler, getOwner().getLocation());
+ runfiles.getRunfilesInputs(ctx.getExecutor().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 2c5daad..79d9236 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
@@ -25,7 +25,6 @@
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.events.EventHandler;
import java.io.IOException;
import java.io.OutputStream;
@@ -61,8 +60,7 @@
public final void execute(ActionExecutionContext actionExecutionContext)
throws ActionExecutionException, InterruptedException {
try {
- getStrategy(actionExecutionContext.getExecutor()).exec(actionExecutionContext.getExecutor(),
- this, actionExecutionContext.getFileOutErr(), actionExecutionContext);
+ getStrategy(actionExecutionContext.getExecutor()).exec(this, actionExecutionContext);
} catch (ExecException e) {
throw e.toActionExecutionException(
"Writing file for rule '" + Label.print(getOwner().getLabel()) + "'",
@@ -74,14 +72,10 @@
/**
* Produce a DeterministicWriter that can write the file to an OutputStream deterministically.
*
- * @param eventHandler destination for warning messages. (Note that errors should
- * still be indicated by throwing an exception; reporter.error() will
- * not cause action execution to fail.)
- * @param executor the Executor.
- * @throws IOException if the content cannot be written to the output stream
+ * @param ctx context for use with creating the writer.
*/
- public abstract DeterministicWriter newDeterministicWriter(EventHandler eventHandler,
- Executor executor) throws IOException, InterruptedException, ExecException;
+ public abstract DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
+ throws IOException, InterruptedException, ExecException;
/**
* This hook is called after the File has been successfully written to disk.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java
index c5c4822..3e235bb 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/BinaryFileWriteAction.java
@@ -17,10 +17,9 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.io.ByteSource;
import com.google.common.io.ByteStreams;
+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.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
@@ -57,7 +56,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
index 01ae8eb..1907f7c 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteAction.java
@@ -16,11 +16,10 @@
import static java.nio.charset.StandardCharsets.UTF_8;
+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.analysis.RuleContext;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import java.io.IOException;
@@ -100,8 +99,7 @@
* {@link #getFileContents()}.
*/
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler,
- Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java
index e019fb5..2ddd813 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/FileWriteActionContext.java
@@ -15,10 +15,8 @@
import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.Executor.ActionContext;
import com.google.devtools.build.lib.actions.ResourceSet;
-import com.google.devtools.build.lib.util.io.FileOutErr;
/**
* The action context for {@link AbstractFileWriteAction} instances (technically instances of
@@ -29,8 +27,8 @@
/**
* Performs all the setup and then calls back into the action to write the data.
*/
- void exec(Executor executor, AbstractFileWriteAction action, FileOutErr outErr,
- ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException;
+ void exec(AbstractFileWriteAction action, ActionExecutionContext actionExecutionContext)
+ throws ExecException, InterruptedException;
/**
* Returns the estimated resource consumption of the action.
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java
index 2e92c68..939d9fc 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/ParameterFileWriteAction.java
@@ -16,11 +16,10 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
+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.ParameterFile.ParameterFileType;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.ShellEscaper;
@@ -68,7 +67,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
index 6e8275e..10d4d72 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/actions/TemplateExpansionAction.java
@@ -19,10 +19,9 @@
import com.google.common.base.Objects;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+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.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.ResourceFileLoader;
import com.google.devtools.build.lib.util.StringUtilities;
@@ -342,8 +341,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler,
- Executor executor) throws IOException {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) throws IOException {
final byte[] bytes = getFileContents().getBytes(Template.DEFAULT_CHARSET);
return new DeterministicWriter() {
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java b/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
index 1359363..332cb8a 100644
--- a/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/exec/FileWriteStrategy.java
@@ -19,13 +19,10 @@
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.analysis.actions.AbstractFileWriteAction;
import com.google.devtools.build.lib.analysis.actions.FileWriteActionContext;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.profiler.AutoProfiler;
-import com.google.devtools.build.lib.util.io.FileOutErr;
import com.google.devtools.build.lib.vfs.Path;
import java.io.BufferedOutputStream;
@@ -45,16 +42,16 @@
}
@Override
- public void exec(Executor executor, AbstractFileWriteAction action, FileOutErr outErr,
- ActionExecutionContext actionExecutionContext) throws ExecException, InterruptedException {
- EventHandler reporter = executor == null ? null : executor.getEventHandler();
+ public void exec(AbstractFileWriteAction action, ActionExecutionContext actionExecutionContext)
+ throws ExecException, InterruptedException {
+
try (AutoProfiler p =
AutoProfiler.logged(
"running " + action.prettyPrint(), LOG, /*minTimeForLoggingInMilliseconds=*/ 100)) {
try {
Path outputPath = Iterables.getOnlyElement(action.getOutputs()).getPath();
try (OutputStream out = new BufferedOutputStream(outputPath.getOutputStream())) {
- action.newDeterministicWriter(reporter, executor).writeOutputFile(out);
+ action.newDeterministicWriter(actionExecutionContext).writeOutputFile(out);
}
if (action.makeExecutable()) {
outputPath.setExecutable(true);
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 b6c7a58..0adf008 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
@@ -14,12 +14,11 @@
package com.google.devtools.build.lib.rules.android;
import com.google.common.collect.ImmutableList;
+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.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.common.options.EnumConverter;
import com.google.devtools.common.options.Option;
@@ -89,15 +88,15 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor)
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException, InterruptedException, ExecException {
- Options options = executor.getOptions().getOptions(Options.class);
+ Options options = ctx.getExecutor().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 = executor.getContext(
+ final String userHomeDirectory = ctx.getExecutor().getContext(
WriteAdbArgsActionContext.class).getUserHomeDirectory();
return new DeterministicWriter() {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMapAction.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMapAction.java
index 758a5bb..71e491d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMapAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/CppModuleMapAction.java
@@ -16,12 +16,11 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.base.Strings;
import com.google.common.collect.ImmutableList;
+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.ResourceSet;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -85,7 +84,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
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 c684368..da42dfd 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
@@ -18,12 +18,11 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.analysis.BuildInfoHelper;
import com.google.devtools.build.lib.analysis.WorkspaceStatusAction;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
@@ -81,10 +80,10 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor)
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException {
WorkspaceStatusAction.Context context =
- executor.getContext(WorkspaceStatusAction.Context.class);
+ ctx.getExecutor().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/extra/ExtraActionInfoFileWriteAction.java b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java
index bb75bda..bc3f79d 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/extra/ExtraActionInfoFileWriteAction.java
@@ -15,13 +15,12 @@
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.Action;
+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.ExecException;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.actions.extra.ExtraActionInfo;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
@@ -46,7 +45,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor)
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx)
throws IOException, InterruptedException, ExecException {
return new DeterministicWriter() {
// Instantiate the extra action info only on execution, so it is computed freshly each
diff --git a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
index 7be70e9..62fa681 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/genquery/GenQuery.java
@@ -21,8 +21,8 @@
import com.google.common.collect.Iterables;
import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
import com.google.devtools.build.lib.analysis.RuleConfiguredTargetBuilder;
import com.google.devtools.build.lib.analysis.RuleContext;
@@ -150,8 +150,7 @@
new AbstractFileWriteAction(
ruleContext.getActionOwner(), Collections.<Artifact>emptySet(), outputArtifact, false) {
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler,
- Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
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 ccf2872..a60c322 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
@@ -18,13 +18,12 @@
import com.google.common.annotations.VisibleForTesting;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+import com.google.devtools.build.lib.actions.ActionExecutionContext;
import com.google.devtools.build.lib.actions.Artifact;
-import com.google.devtools.build.lib.actions.Executor;
import com.google.devtools.build.lib.analysis.BuildInfoHelper;
import com.google.devtools.build.lib.analysis.WorkspaceStatusAction;
import com.google.devtools.build.lib.analysis.WorkspaceStatusAction.Key;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
@@ -144,14 +143,13 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler,
- final Executor executor) {
+ public DeterministicWriter newDeterministicWriter(final ActionExecutionContext ctx) {
final long timestamp = System.currentTimeMillis();
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
WorkspaceStatusAction.Context context =
- executor.getContext(WorkspaceStatusAction.Context.class);
+ ctx.getExecutor().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/test/BaselineCoverageAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/BaselineCoverageAction.java
index 728584b..20ae43e 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
@@ -18,6 +18,7 @@
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
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;
@@ -28,7 +29,6 @@
import com.google.devtools.build.lib.collect.nestedset.NestedSet;
import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder;
import com.google.devtools.build.lib.collect.nestedset.Order;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.vfs.PathFragment;
@@ -73,8 +73,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler,
- Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFileManifestAction.java b/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFileManifestAction.java
index 3c9daa6..96224f0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFileManifestAction.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/test/InstrumentedFileManifestAction.java
@@ -19,12 +19,11 @@
import com.google.common.base.Function;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Iterables;
+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.analysis.RuleContext;
import com.google.devtools.build.lib.analysis.actions.AbstractFileWriteAction;
-import com.google.devtools.build.lib.events.EventHandler;
import com.google.devtools.build.lib.util.Fingerprint;
import com.google.devtools.build.lib.util.Preconditions;
import com.google.devtools.build.lib.util.RegexFilter;
@@ -57,7 +56,7 @@
}
@Override
- public DeterministicWriter newDeterministicWriter(EventHandler eventHandler, Executor executor) {
+ public DeterministicWriter newDeterministicWriter(ActionExecutionContext ctx) {
return new DeterministicWriter() {
@Override
public void writeOutputFile(OutputStream out) throws IOException {
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
index 38aad5c..00b1fcc 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
@@ -87,7 +87,8 @@
return new ActionExecutionContext(
executor,
new SingleBuildFileCache(execRoot.getPathString(), execRoot.getFileSystem()),
- metadataHandler, fileOutErr,
+ metadataHandler,
+ fileOutErr,
actionGraph == null
? null
: ActionInputHelper.actionGraphArtifactExpander(actionGraph));
@@ -102,7 +103,11 @@
metadataHandler, fileOutErr,
new BlockingSkyFunctionEnvironment(buildDriver,
executor == null ? null : executor.getEventHandler()));
+ }
+ public static ActionExecutionContext createContext(EventHandler eventHandler) {
+ DummyExecutor dummyExecutor = new DummyExecutor(eventHandler);
+ return new ActionExecutionContext(dummyExecutor, null, null, null, null);
}
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java b/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java
index ee6f4da..606fe15 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/DummyExecutor.java
@@ -25,15 +25,23 @@
* A dummy implementation of Executor.
*/
public final class DummyExecutor implements Executor {
- private final Path inputDir;
- /**
- * @param inputDir
- */
+ private final Path inputDir;
+ private final EventHandler eventHandler;
+
public DummyExecutor(Path inputDir) {
- this.inputDir = inputDir;
+ this(inputDir, null);
}
+ public DummyExecutor(EventHandler eventHandler) {
+ this(null, eventHandler);
+ }
+
+ public DummyExecutor(Path inputDir, EventHandler eventHandler) {
+ this.inputDir = inputDir;
+ this.eventHandler = eventHandler;
+ }
+
@Override
public Path getExecRoot() {
return inputDir;
@@ -56,7 +64,7 @@
@Override
public EventHandler getEventHandler() {
- throw new UnsupportedOperationException();
+ return eventHandler;
}
@Override
diff --git a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
index a369cf5..552ca78 100644
--- a/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/analysis/util/BuildViewTestCase.java
@@ -1569,7 +1569,8 @@
BaselineCoverageAction baselineAction =
(BaselineCoverageAction) getGeneratingAction(baselineCoverage);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
- baselineAction.newDeterministicWriter(null, null).writeOutputFile(bytes);
+ baselineAction.newDeterministicWriter(ActionsTestUtil.createContext(reporter))
+ .writeOutputFile(bytes);
for (String line : new String(bytes.toByteArray(), StandardCharsets.UTF_8).split("\n")) {
if (line.startsWith("SF:")) {