diff options
author | 2016-08-10 08:44:19 +0000 | |
---|---|---|
committer | 2016-08-10 13:54:36 +0000 | |
commit | ea46dfc52c4142d7b30dbac36b365ffa7ea6b338 (patch) | |
tree | 6399fde7c9cf2f35bcb0107843099b13933757e5 /src | |
parent | 373e3e28274cca5b87f48abe33884edb84016dd3 (diff) |
Move workspace initialization out of BlazeRuntime.Builder.
Require all callers to call initWorkspace after BlazeRuntime construction.
--
MOS_MIGRATED_REVID=129842292
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java | 79 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java | 7 |
2 files changed, 32 insertions, 54 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java index bdc8652973..4362c005cb 100644 --- a/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java +++ b/src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java @@ -176,6 +176,7 @@ public final class BlazeRuntime { public void initWorkspace(BlazeDirectories directories, BinTools binTools) throws AbruptExitException { + Preconditions.checkState(this.workspace == null); boolean watchFS = startupOptionsProvider != null && startupOptionsProvider.getOptions(BlazeServerStartupOptions.class).watchFS; WorkspaceBuilder builder = new WorkspaceBuilder(directories, binTools, watchFS); @@ -919,27 +920,11 @@ public final class BlazeRuntime { ServerDirectories serverDirectories = new ServerDirectories(installBasePath, outputBasePath, startupOptions.installMD5); - BlazeDirectories directories = - new BlazeDirectories( - serverDirectories, workspaceDirectoryPath, startupOptions.deepExecRoot, productName); - Clock clock = BlazeClock.instance(); - - BinTools binTools; - try { - binTools = BinTools.forProduction(directories); - } catch (IOException e) { - throw new AbruptExitException( - "Cannot enumerate embedded binaries: " + e.getMessage(), - ExitCode.LOCAL_ENVIRONMENTAL_ERROR); - } - BlazeRuntime.Builder runtimeBuilder = new BlazeRuntime.Builder() .setProductName(productName) .setServerDirectories(serverDirectories) - .setDirectories(directories) .setStartupOptionsProvider(options) - .setBinTools(binTools) .setClock(clock) // TODO(bazel-team): Make BugReportingExceptionHandler the default. // See bug "Make exceptions in EventBus subscribers fatal" @@ -959,6 +944,20 @@ public final class BlazeRuntime { } BlazeRuntime runtime = runtimeBuilder.build(); + + BlazeDirectories directories = + new BlazeDirectories( + serverDirectories, workspaceDirectoryPath, startupOptions.deepExecRoot, productName); + BinTools binTools; + try { + binTools = BinTools.forProduction(directories); + } catch (IOException e) { + throw new AbruptExitException( + "Cannot enumerate embedded binaries: " + e.getMessage(), + ExitCode.LOCAL_ENVIRONMENTAL_ERROR); + } + runtime.initWorkspace(directories, binTools); + AutoProfiler.setClock(runtime.getClock()); BugReport.setRuntime(runtime); return runtime; @@ -1031,19 +1030,16 @@ public final class BlazeRuntime { */ public static class Builder { private ServerDirectories serverDirectories; - private BlazeDirectories directories; private Clock clock; private OptionsProvider startupOptionsProvider; private final List<BlazeModule> blazeModules = new ArrayList<>(); private SubscriberExceptionHandler eventBusExceptionHandler = new RemoteExceptionHandler(); - private BinTools binTools; private UUID instanceId; private String productName; public BlazeRuntime build() throws AbruptExitException { Preconditions.checkNotNull(productName); Preconditions.checkNotNull(serverDirectories); - Preconditions.checkNotNull(directories); Preconditions.checkNotNull(startupOptionsProvider); Clock clock = (this.clock == null) ? BlazeClock.instance() : this.clock; UUID instanceId = (this.instanceId == null) ? UUID.randomUUID() : this.instanceId; @@ -1110,22 +1106,19 @@ public final class BlazeRuntime { } } - BlazeRuntime runtime = - new BlazeRuntime( - serverBuilder.getQueryEnvironmentFactory(), - packageFactory, - ruleClassProvider, - configurationFactory, - clock, - startupOptionsProvider, - ImmutableList.copyOf(blazeModules), - eventBusExceptionHandler, - projectFileProvider, - serverBuilder.getInvocationPolicy(), - serverBuilder.getCommands(), - productName); - runtime.initWorkspace(directories, binTools); - return runtime; + return new BlazeRuntime( + serverBuilder.getQueryEnvironmentFactory(), + packageFactory, + ruleClassProvider, + configurationFactory, + clock, + startupOptionsProvider, + ImmutableList.copyOf(blazeModules), + eventBusExceptionHandler, + projectFileProvider, + serverBuilder.getInvocationPolicy(), + serverBuilder.getCommands(), + productName); } public Builder setProductName(String productName) { @@ -1133,27 +1126,11 @@ public final class BlazeRuntime { return this; } - public Builder setBinTools(BinTools binTools) { - this.binTools = binTools; - return this; - } - public Builder setServerDirectories(ServerDirectories serverDirectories) { this.serverDirectories = serverDirectories; return this; } - public Builder setDirectories(BlazeDirectories directories) { - this.directories = directories; - return this; - } - - /** Creates and sets a new {@link BlazeDirectories} instance with the given parameters. */ - public Builder setDirectories( - Path installBase, Path outputBase, Path workspace, String productName) { - return setDirectories(new BlazeDirectories(installBase, outputBase, workspace, productName)); - } - public Builder setClock(Clock clock) { this.clock = clock; return this; diff --git a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java index eff79d93bf..2b550ea2a1 100644 --- a/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java +++ b/src/test/java/com/google/devtools/build/lib/runtime/BlazeCommandDispatcherRcoptionsTest.java @@ -131,13 +131,10 @@ public class BlazeCommandDispatcherRcoptionsTest { String productName = TestConstants.PRODUCT_NAME; ServerDirectories serverDirectories = new ServerDirectories(scratch.dir("install_base"), scratch.dir("output_base")); - BlazeDirectories directories = - new BlazeDirectories(serverDirectories, scratch.dir("pkg"), productName); this.runtime = new BlazeRuntime.Builder() .setProductName(productName) .setServerDirectories(serverDirectories) - .setDirectories(directories) .setStartupOptionsProvider( OptionsParser.newOptionsParser(BlazeServerStartupOptions.class)) .addBlazeModule( @@ -155,6 +152,10 @@ public class BlazeCommandDispatcherRcoptionsTest { } }) .build(); + + BlazeDirectories directories = + new BlazeDirectories(serverDirectories, scratch.dir("pkg"), productName); + this.runtime.initWorkspace(directories, /*binTools=*/null); } @Test |