diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib')
6 files changed, 22 insertions, 12 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ActionContextConsumer.java b/src/main/java/com/google/devtools/build/lib/actions/ActionContextConsumer.java index 48bd35a9b3..2308721e95 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/ActionContextConsumer.java +++ b/src/main/java/com/google/devtools/build/lib/actions/ActionContextConsumer.java @@ -13,6 +13,7 @@ // limitations under the License. package com.google.devtools.build.lib.actions; +import com.google.common.collect.Multimap; import com.google.devtools.build.lib.actions.Executor.ActionContext; import java.util.Map; @@ -59,5 +60,5 @@ public interface ActionContextConsumer { * * <p>If the implementation name is the empty string, the choice is left to Blaze. */ - Map<Class<? extends ActionContext>, String> getActionContexts(); + Multimap<Class<? extends ActionContext>, String> getActionContexts(); } diff --git a/src/main/java/com/google/devtools/build/lib/actions/BlazeExecutor.java b/src/main/java/com/google/devtools/build/lib/actions/BlazeExecutor.java index 5cca649974..88dc9a3f2d 100644 --- a/src/main/java/com/google/devtools/build/lib/actions/BlazeExecutor.java +++ b/src/main/java/com/google/devtools/build/lib/actions/BlazeExecutor.java @@ -107,6 +107,7 @@ public final class BlazeExecutor implements Executor { if (annotation != null) { contextMap.put(annotation.contextType(), context); } + contextMap.put(context.getClass(), context); } for (ActionContextProvider factory : contextProviders) { diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java index d4f1570bca..4327e676b6 100644 --- a/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java +++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/BazelRulesModule.java @@ -17,6 +17,8 @@ package com.google.devtools.build.lib.bazel.rules; import com.google.common.base.Supplier; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; import com.google.common.eventbus.Subscribe; import com.google.devtools.build.lib.actions.ActionContextConsumer; import com.google.devtools.build.lib.actions.ActionContextProvider; @@ -115,8 +117,8 @@ public class BazelRulesModule extends BlazeModule { } @Override - public Map<Class<? extends ActionContext>, String> getActionContexts() { - return ImmutableMap.<Class<? extends ActionContext>, String>builder() + public Multimap<Class<? extends ActionContext>, String> getActionContexts() { + return ImmutableMultimap.<Class<? extends ActionContext>, String>builder() .put(CppCompileActionContext.class, "") .put(CppLinkActionContext.class, "") .put(IncludeScanningContext.class, "") diff --git a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java index 3f9de4f8ce..5e1cae3e77 100644 --- a/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java +++ b/src/main/java/com/google/devtools/build/lib/buildtool/ExecutionTool.java @@ -19,8 +19,10 @@ import com.google.common.base.Stopwatch; import com.google.common.collect.HashBasedTable; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; +import com.google.common.collect.Multimap; import com.google.common.collect.Ordering; import com.google.common.collect.Table; import com.google.devtools.build.lib.Constants; @@ -205,8 +207,8 @@ public class ExecutionTool { } @Override - public Map<Class<? extends ActionContext>, String> getActionContexts() { - return ImmutableMap.<Class<? extends ActionContext>, String>builder() + public Multimap<Class<? extends ActionContext>, String> getActionContexts() { + return ImmutableMultimap.<Class<? extends ActionContext>, String>builder() .put(FilesetActionContext.class, "") .put(WorkspaceStatusAction.Context.class, "") .put(SymlinkTreeActionContext.class, "") @@ -232,7 +234,7 @@ public class ExecutionTool { } for (Map.Entry<Class<? extends ActionContext>, String> entry : - consumer.getActionContexts().entrySet()) { + consumer.getActionContexts().entries()) { ActionContext context = strategyConverter.getStrategy(entry.getKey(), entry.getValue()); if (context == null) { throw makeExceptionForInvalidStrategyValue( diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextConsumer.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextConsumer.java index 9c37c79fcc..4041fd9a4c 100644 --- a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextConsumer.java +++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextConsumer.java @@ -14,7 +14,9 @@ package com.google.devtools.build.lib.sandbox; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMap.Builder; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.ImmutableMultimap.Builder; +import com.google.common.collect.Multimap; import com.google.devtools.build.lib.actions.ActionContextConsumer; import com.google.devtools.build.lib.actions.Executor.ActionContext; import com.google.devtools.build.lib.actions.SpawnActionContext; @@ -34,8 +36,8 @@ public class SandboxActionContextConsumer implements ActionContextConsumer { } @Override - public Map<Class<? extends ActionContext>, String> getActionContexts() { - Builder<Class<? extends ActionContext>, String> contexts = ImmutableMap.builder(); + public Multimap<Class<? extends ActionContext>, String> getActionContexts() { + Builder<Class<? extends ActionContext>, String> contexts = ImmutableMultimap.builder(); if (OS.getCurrent() == OS.LINUX) { contexts.put(SpawnActionContext.class, "sandboxed"); diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextConsumer.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextConsumer.java index b0f7084483..fc21beb4ef 100644 --- a/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextConsumer.java +++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerActionContextConsumer.java @@ -14,7 +14,9 @@ package com.google.devtools.build.lib.worker; import com.google.common.collect.ImmutableMap; -import com.google.common.collect.ImmutableMap.Builder; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.ImmutableMultimap.Builder; +import com.google.common.collect.Multimap; import com.google.devtools.build.lib.actions.ActionContextConsumer; import com.google.devtools.build.lib.actions.Executor.ActionContext; import com.google.devtools.build.lib.actions.SpawnActionContext; @@ -33,8 +35,8 @@ public class WorkerActionContextConsumer implements ActionContextConsumer { } @Override - public Map<Class<? extends ActionContext>, String> getActionContexts() { - Builder<Class<? extends ActionContext>, String> contexts = ImmutableMap.builder(); + public Multimap<Class<? extends ActionContext>, String> getActionContexts() { + Builder<Class<? extends ActionContext>, String> contexts = ImmutableMultimap.builder(); contexts.put(SpawnActionContext.class, "worker"); return contexts.build(); } |