aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar dslomov <dslomov@google.com>2017-09-20 15:12:18 +0200
committerGravatar László Csomor <laszlocsomor@google.com>2017-09-20 16:37:15 +0200
commit441e7a2dac30e59aeb77862473cb3cfbfd42f7d0 (patch)
tree4c8fc7c78edd587483e62e7621d9c050d2ed0563 /src
parent0e9236b47599fe04a2fee2454cac900633b2df0b (diff)
Expose 'registerAction' on SkylarkActionFactory.
Replaces 'buildAndRegisterSpawnAction' now that ActionConstructionContext does not leak underlying rule. RELNOTES: None. PiperOrigin-RevId: 169385509
Diffstat (limited to 'src')
-rw-r--r--src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java19
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java2
2 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
index c09eb68375..9b7eaf47f9 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/skylark/SkylarkActionFactory.java
@@ -16,6 +16,7 @@ package com.google.devtools.build.lib.analysis.skylark;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.devtools.build.lib.actions.Action;
+import com.google.devtools.build.lib.actions.ActionAnalysisMetadata;
import com.google.devtools.build.lib.actions.Artifact;
import com.google.devtools.build.lib.actions.ParameterFile.ParameterFileType;
import com.google.devtools.build.lib.actions.Root;
@@ -25,6 +26,7 @@ import com.google.devtools.build.lib.analysis.CommandHelper;
import com.google.devtools.build.lib.analysis.FilesToRunProvider;
import com.google.devtools.build.lib.analysis.PseudoAction;
import com.google.devtools.build.lib.analysis.RuleContext;
+import com.google.devtools.build.lib.analysis.actions.ActionConstructionContext;
import com.google.devtools.build.lib.analysis.actions.CommandLine;
import com.google.devtools.build.lib.analysis.actions.FileWriteAction;
import com.google.devtools.build.lib.analysis.actions.ParamFileInfo;
@@ -409,10 +411,21 @@ public class SkylarkActionFactory implements SkylarkValue {
}
/**
- * Builds and registers a spawn action on the rule context.
+ * Registers actions in the context of this {@link SkylarkActionFactory}.
+ *
+ * Use {@link #getActionConstructionContext()} to obtain the context required to
+ * create those actions.
+ */
+ public void registerAction(ActionAnalysisMetadata... actions) {
+ ruleContext.registerAction(actions);
+ }
+
+ /**
+ * Returns information needed to construct actions that can be
+ * registered with {@link #registerAction(ActionAnalysisMetadata...)}.
*/
- public void buildAndRegisterSpawnAction(SpawnAction.Builder action) {
- ruleContext.registerAction(action.build(ruleContext));
+ public ActionConstructionContext getActionConstructionContext() {
+ return ruleContext;
}
@SkylarkCallable(
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
index c615e3a4eb..d520a6fdef 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java
@@ -484,7 +484,7 @@ public class JavaSkylarkCommon {
.build())
.useDefaultShellEnvironment()
.setMnemonic("JavaIjar");
- actions.buildAndRegisterSpawnAction(actionBuilder);
+ actions.registerAction(actionBuilder.build(actions.getActionConstructionContext()));
return interfaceJar;
}
/**