aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java1
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/BUILD27
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java (renamed from src/main/java/com/google/devtools/build/lib/standalone/LinuxSandboxedStrategy.java)2
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java (renamed from src/main/java/com/google/devtools/build/lib/standalone/NamespaceSandboxRunner.java)2
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextConsumer.java47
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java49
-rw-r--r--src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java54
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/BUILD26
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextConsumer.java (renamed from src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java)2
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java (renamed from src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextProvider.java)22
-rw-r--r--src/main/java/com/google/devtools/build/lib/standalone/StandaloneModule.java11
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/BUILD28
-rw-r--r--src/main/java/com/google/devtools/build/workspace/BUILD1
13 files changed, 244 insertions, 28 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java b/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java
index 318e6ac7b6..958c7ea3c3 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/BazelMain.java
@@ -36,6 +36,7 @@ public final class BazelMain {
com.google.devtools.build.lib.bazel.BazelDiffAwarenessModule.class,
com.google.devtools.build.lib.bazel.BazelRepositoryModule.class,
com.google.devtools.build.lib.bazel.rules.BazelRulesModule.class,
+ com.google.devtools.build.lib.sandbox.SandboxModule.class,
com.google.devtools.build.lib.standalone.StandaloneModule.class,
com.google.devtools.build.lib.runtime.BuildSummaryStatsModule.class,
com.google.devtools.build.lib.webstatusserver.WebStatusServerModule.class,
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/BUILD b/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
new file mode 100644
index 0000000000..9b549e949c
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/BUILD
@@ -0,0 +1,27 @@
+package(
+ default_visibility = [
+ "//src:__subpackages__",
+ ],
+)
+
+java_library(
+ name = "sandbox",
+ srcs = glob(["*.java"]),
+ deps = [
+ "//src/main/java:actions",
+ "//src/main/java:analysis-exec-rules-skyframe",
+ "//src/main/java:buildtool-runtime",
+ "//src/main/java:common",
+ "//src/main/java:packages",
+ "//src/main/java:shell",
+ "//src/main/java:unix",
+ "//src/main/java:vfs",
+ "//third_party:guava",
+ ],
+)
+
+filegroup(
+ name = "srcs",
+ srcs = glob(["**"]),
+ visibility = ["//src/main/java:__pkg__"],
+)
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/LinuxSandboxedStrategy.java b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
index 81c56929e8..4f7557cb7e 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/LinuxSandboxedStrategy.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/LinuxSandboxedStrategy.java
@@ -11,7 +11,7 @@
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.standalone;
+package com.google.devtools.build.lib.sandbox;
import com.google.common.collect.ImmutableList;
import com.google.devtools.build.lib.actions.ActionExecutionContext;
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/NamespaceSandboxRunner.java b/src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java
index 523fb7e947..7720b787c6 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/NamespaceSandboxRunner.java
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/NamespaceSandboxRunner.java
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package com.google.devtools.build.lib.standalone;
+package com.google.devtools.build.lib.sandbox;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
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
new file mode 100644
index 0000000000..657fb8f73d
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextConsumer.java
@@ -0,0 +1,47 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.sandbox;
+
+import com.google.common.collect.ImmutableMap;
+import com.google.common.collect.ImmutableMap.Builder;
+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;
+import com.google.devtools.build.lib.util.OS;
+
+import java.util.Map;
+
+/**
+ * {@link ActionContextConsumer} that requests the action contexts necessary for sandboxed
+ * execution.
+ */
+public class SandboxActionContextConsumer implements ActionContextConsumer {
+
+ @Override
+ public Map<String, String> getSpawnActionContexts() {
+ return ImmutableMap.of();
+ }
+
+ @Override
+ public Map<Class<? extends ActionContext>, String> getActionContexts() {
+ Builder<Class<? extends ActionContext>, String> contexts = ImmutableMap.builder();
+
+ if (OS.getCurrent() == OS.LINUX) {
+ contexts.put(SpawnActionContext.class, "sandboxed");
+ }
+
+ return contexts.build();
+ }
+
+}
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
new file mode 100644
index 0000000000..69b13af624
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxActionContextProvider.java
@@ -0,0 +1,49 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.sandbox;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.ImmutableList.Builder;
+import com.google.devtools.build.lib.actions.ActionContextProvider;
+import com.google.devtools.build.lib.actions.Executor.ActionContext;
+import com.google.devtools.build.lib.buildtool.BuildRequest;
+import com.google.devtools.build.lib.exec.ExecutionOptions;
+import com.google.devtools.build.lib.runtime.BlazeRuntime;
+import com.google.devtools.build.lib.util.OS;
+
+/**
+ * Provides the sandboxed spawn strategy.
+ */
+public class SandboxActionContextProvider extends ActionContextProvider {
+
+ @SuppressWarnings("unchecked")
+ private final ImmutableList<ActionContext> strategies;
+
+ public SandboxActionContextProvider(BlazeRuntime runtime, BuildRequest buildRequest) {
+ boolean verboseFailures = buildRequest.getOptions(ExecutionOptions.class).verboseFailures;
+ Builder<ActionContext> strategies = ImmutableList.builder();
+
+ if (OS.getCurrent() == OS.LINUX) {
+ strategies.add(new LinuxSandboxedStrategy(runtime.getDirectories(), verboseFailures));
+ }
+
+ this.strategies = strategies.build();
+ }
+
+ @Override
+ public Iterable<ActionContext> getActionContexts() {
+ return strategies;
+ }
+
+}
diff --git a/src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java
new file mode 100644
index 0000000000..65d0c15379
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/sandbox/SandboxModule.java
@@ -0,0 +1,54 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+package com.google.devtools.build.lib.sandbox;
+
+import com.google.common.collect.ImmutableList;
+import com.google.common.eventbus.Subscribe;
+import com.google.devtools.build.lib.actions.ActionContextConsumer;
+import com.google.devtools.build.lib.actions.ActionContextProvider;
+import com.google.devtools.build.lib.buildtool.BuildRequest;
+import com.google.devtools.build.lib.buildtool.buildevent.BuildStartingEvent;
+import com.google.devtools.build.lib.runtime.BlazeModule;
+import com.google.devtools.build.lib.runtime.BlazeRuntime;
+import com.google.devtools.build.lib.runtime.Command;
+
+/**
+ * This module provides the Sandbox spawn strategy.
+ */
+public class SandboxModule extends BlazeModule {
+ private BuildRequest buildRequest;
+ private BlazeRuntime runtime;
+
+ @Override
+ public Iterable<ActionContextProvider> getActionContextProviders() {
+ return ImmutableList.<ActionContextProvider>of(
+ new SandboxActionContextProvider(runtime, buildRequest));
+ }
+
+ @Override
+ public Iterable<ActionContextConsumer> getActionContextConsumers() {
+ return ImmutableList.<ActionContextConsumer>of(new SandboxActionContextConsumer());
+ }
+
+ @Override
+ public void beforeCommand(BlazeRuntime runtime, Command command) {
+ this.runtime = runtime;
+ runtime.getEventBus().register(this);
+ }
+
+ @Subscribe
+ public void buildStarting(BuildStartingEvent event) {
+ buildRequest = event.getRequest();
+ }
+}
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/BUILD b/src/main/java/com/google/devtools/build/lib/standalone/BUILD
new file mode 100644
index 0000000000..3653e06958
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/standalone/BUILD
@@ -0,0 +1,26 @@
+package(
+ default_visibility = [
+ "//src:__subpackages__",
+ ],
+)
+
+java_library(
+ name = "standalone",
+ srcs = glob(["*.java"]),
+ deps = [
+ "//src/main/java:actions",
+ "//src/main/java:analysis-exec-rules-skyframe",
+ "//src/main/java:buildtool-runtime",
+ "//src/main/java:common",
+ "//src/main/java:packages",
+ "//src/main/java:shell",
+ "//src/main/java:vfs",
+ "//third_party:guava",
+ ],
+)
+
+filegroup(
+ name = "srcs",
+ srcs = glob(["**"]),
+ visibility = ["//src/main/java:__pkg__"],
+)
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextConsumer.java
index b975a5e0ce..4d87f12539 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextConsumer.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextConsumer.java
@@ -24,7 +24,7 @@ import java.util.Map;
* {@link ActionContextConsumer} that requests the action contexts necessary for standalone
* execution.
*/
-public class StandaloneContextConsumer implements ActionContextConsumer {
+public class StandaloneActionContextConsumer implements ActionContextConsumer {
@Override
public Map<String, String> getSpawnActionContexts() {
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextProvider.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
index 76c2655f06..7fe35f69c7 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneContextProvider.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneActionContextProvider.java
@@ -32,7 +32,6 @@ import com.google.devtools.build.lib.rules.test.ExclusiveTestStrategy;
import com.google.devtools.build.lib.rules.test.StandaloneTestStrategy;
import com.google.devtools.build.lib.rules.test.TestActionContext;
import com.google.devtools.build.lib.runtime.BlazeRuntime;
-import com.google.devtools.build.lib.util.OS;
import com.google.devtools.build.lib.vfs.FileSystemUtils;
import java.io.IOException;
@@ -40,7 +39,7 @@ import java.io.IOException;
/**
* Provide a standalone, local execution context.
*/
-public class StandaloneContextProvider extends ActionContextProvider {
+public class StandaloneActionContextProvider extends ActionContextProvider {
/**
* a IncludeScanningContext that does nothing. Since local execution does not need to
@@ -61,15 +60,12 @@ public class StandaloneContextProvider extends ActionContextProvider {
}
}
- @SuppressWarnings("unchecked")
- private final ActionContext standaloneSpawnStrategy;
private final ImmutableList<ActionContext> strategies;
private final BlazeRuntime runtime;
- public StandaloneContextProvider(BlazeRuntime runtime, BuildRequest buildRequest) {
+ public StandaloneActionContextProvider(BlazeRuntime runtime, BuildRequest buildRequest) {
boolean verboseFailures = buildRequest.getOptions(ExecutionOptions.class).verboseFailures;
- standaloneSpawnStrategy = new StandaloneSpawnStrategy(runtime.getExecRoot(), verboseFailures);
this.runtime = runtime;
TestActionContext testStrategy = new StandaloneTestStrategy(buildRequest,
@@ -77,19 +73,12 @@ public class StandaloneContextProvider extends ActionContextProvider {
runtime.getWorkspace());
Builder<ActionContext> strategiesBuilder = ImmutableList.builder();
- // order of strategies passed to builder is significant - when there are many strategies that
+
+ // Order of strategies passed to builder is significant - when there are many strategies that
// could potentially be used and a spawnActionContext doesn't specify which one it wants, the
// last one from strategies list will be used
-
- // put sandboxed strategy first, as we don't want it by default
- if (OS.getCurrent() == OS.LINUX) {
- LinuxSandboxedStrategy sandboxedLinuxStrategy =
- new LinuxSandboxedStrategy(runtime.getDirectories(), verboseFailures);
- strategiesBuilder.add(sandboxedLinuxStrategy);
- }
-
strategiesBuilder.add(
- standaloneSpawnStrategy,
+ new StandaloneSpawnStrategy(runtime.getExecRoot(), verboseFailures),
new DummyIncludeScanningContext(),
new LocalLinkStrategy(),
testStrategy,
@@ -104,4 +93,5 @@ public class StandaloneContextProvider extends ActionContextProvider {
public Iterable<ActionContext> getActionContexts() {
return strategies;
}
+
}
diff --git a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneModule.java b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneModule.java
index 02d6a3a39f..32d4f42bcd 100644
--- a/src/main/java/com/google/devtools/build/lib/standalone/StandaloneModule.java
+++ b/src/main/java/com/google/devtools/build/lib/standalone/StandaloneModule.java
@@ -27,25 +27,18 @@ import com.google.devtools.build.lib.runtime.Command;
* StandaloneModule provides pluggable functionality for blaze.
*/
public class StandaloneModule extends BlazeModule {
- private final ActionContextConsumer actionContextConsumer = new StandaloneContextConsumer();
private BuildRequest buildRequest;
private BlazeRuntime runtime;
- /**
- * Returns the action context provider the module contributes to Blaze, if any.
- */
@Override
public Iterable<ActionContextProvider> getActionContextProviders() {
return ImmutableList.<ActionContextProvider>of(
- new StandaloneContextProvider(runtime, buildRequest));
+ new StandaloneActionContextProvider(runtime, buildRequest));
}
- /**
- * Returns the action context consumer the module contributes to Blaze, if any.
- */
@Override
public Iterable<ActionContextConsumer> getActionContextConsumers() {
- return ImmutableList.of(actionContextConsumer);
+ return ImmutableList.<ActionContextConsumer>of(new StandaloneActionContextConsumer());
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/worker/BUILD b/src/main/java/com/google/devtools/build/lib/worker/BUILD
new file mode 100644
index 0000000000..aee455cc65
--- /dev/null
+++ b/src/main/java/com/google/devtools/build/lib/worker/BUILD
@@ -0,0 +1,28 @@
+package(
+ default_visibility = [
+ "//src:__subpackages__",
+ ],
+)
+
+java_library(
+ name = "worker",
+ srcs = glob(["*.java"]),
+ deps = [
+ "//src/main/java:actions",
+ "//src/main/java:buildtool-runtime",
+ "//src/main/java:common",
+ "//src/main/java:concurrent",
+ "//src/main/java:options",
+ "//src/main/java:vfs",
+ "//src/main/protobuf:proto_worker_protocol",
+ "//third_party:apache_commons_pool2",
+ "//third_party:guava",
+ "//third_party:jsr305",
+ ],
+)
+
+filegroup(
+ name = "srcs",
+ srcs = glob(["**"]),
+ visibility = ["//src/main/java:__pkg__"],
+)
diff --git a/src/main/java/com/google/devtools/build/workspace/BUILD b/src/main/java/com/google/devtools/build/workspace/BUILD
index 57d7171433..d1021b5aae 100644
--- a/src/main/java/com/google/devtools/build/workspace/BUILD
+++ b/src/main/java/com/google/devtools/build/workspace/BUILD
@@ -13,6 +13,7 @@ java_library(
deps = [
"//src/main/java:analysis-exec-rules-skyframe",
"//src/main/java:bazel-core",
+ "//src/main/java:buildtool-runtime",
"//src/main/java:events",
"//src/main/java:options",
"//src/main/java:packages",