diff options
author | dslomov <dslomov@google.com> | 2017-09-20 15:12:18 +0200 |
---|---|---|
committer | László Csomor <laszlocsomor@google.com> | 2017-09-20 16:37:15 +0200 |
commit | 441e7a2dac30e59aeb77862473cb3cfbfd42f7d0 (patch) | |
tree | 4c8fc7c78edd587483e62e7621d9c050d2ed0563 /src | |
parent | 0e9236b47599fe04a2fee2454cac900633b2df0b (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.java | 19 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java | 2 |
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; } /** |