aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/runtime
diff options
context:
space:
mode:
authorGravatar buchgr <buchgr@google.com>2018-07-09 05:55:40 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-09 05:57:06 -0700
commit35ff63a50997ca3af603629ee2d9d30b44aae27b (patch)
tree5b7c4a84cd01fb83fd82c8dc0b883766d0f37a1a /src/main/java/com/google/devtools/build/lib/runtime
parent28fcf285f8b7a2af707c95ac2aee677d9e3a9520 (diff)
bep: introduce BuildEventArtifactUploaderFactory
There can be multiple BuildEventTransports active at the same time and we need to ensure that each transport gets its own BuildEventArtifactUploader as these transports might have different lifecycles. We do that by introducing another level of indirection via the BuildEventArtifactUploaderFactory. BlazeModules now register a factory object instead of an uploader. In addition, the BuildEventArtifactUploader gets a shutdown() method that allows to free any resources associated with it. PiperOrigin-RevId: 203752092
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/runtime')
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/BlazeRuntime.java12
-rw-r--r--src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java18
2 files changed, 15 insertions, 15 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 5a1708225d..a5336fa920 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
@@ -31,7 +31,7 @@ import com.google.devtools.build.lib.analysis.ServerDirectories;
import com.google.devtools.build.lib.analysis.config.BuildOptions;
import com.google.devtools.build.lib.analysis.config.ConfigurationFragmentFactory;
import com.google.devtools.build.lib.analysis.test.CoverageReportActionFactory;
-import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploaderMap;
+import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploaderFactoryMap;
import com.google.devtools.build.lib.clock.BlazeClock;
import com.google.devtools.build.lib.clock.Clock;
import com.google.devtools.build.lib.events.Event;
@@ -155,7 +155,7 @@ public final class BlazeRuntime {
private final String defaultsPackageContent;
private final SubscriberExceptionHandler eventBusExceptionHandler;
private final String productName;
- private final BuildEventArtifactUploaderMap buildEventArtifactUploaders;
+ private final BuildEventArtifactUploaderFactoryMap buildEventArtifactUploaderFactoryMap;
private final ActionKeyContext actionKeyContext;
// Workspace state (currently exactly one workspace per server)
@@ -180,7 +180,7 @@ public final class BlazeRuntime {
InvocationPolicy moduleInvocationPolicy,
Iterable<BlazeCommand> commands,
String productName,
- BuildEventArtifactUploaderMap buildEventArtifactUploaders) {
+ BuildEventArtifactUploaderFactoryMap buildEventArtifactUploaderFactoryMap) {
// Server state
this.fileSystem = fileSystem;
this.blazeModules = blazeModules;
@@ -207,7 +207,7 @@ public final class BlazeRuntime {
CommandNameCache.CommandNameCacheInstance.INSTANCE.setCommandNameCache(
new CommandNameCacheImpl(getCommandMap()));
this.productName = productName;
- this.buildEventArtifactUploaders = buildEventArtifactUploaders;
+ this.buildEventArtifactUploaderFactoryMap = buildEventArtifactUploaderFactoryMap;
}
public BlazeWorkspace initWorkspace(BlazeDirectories directories, BinTools binTools)
@@ -1253,8 +1253,8 @@ public final class BlazeRuntime {
return productName;
}
- public BuildEventArtifactUploaderMap getBuildEventArtifactUploaders() {
- return buildEventArtifactUploaders;
+ public BuildEventArtifactUploaderFactoryMap getBuildEventArtifactUploaderFactoryMap() {
+ return buildEventArtifactUploaderFactoryMap;
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java b/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java
index 73bb27e67a..b88d487cdd 100644
--- a/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java
@@ -18,8 +18,8 @@ import com.google.common.base.Function;
import com.google.common.base.Preconditions;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
-import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploader;
-import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploaderMap;
+import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploaderFactory;
+import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploaderFactoryMap;
import com.google.devtools.build.lib.packages.AttributeContainer;
import com.google.devtools.build.lib.packages.PackageFactory;
import com.google.devtools.build.lib.packages.RuleClass;
@@ -45,8 +45,8 @@ public final class ServerBuilder {
ImmutableList.builder();
private final ImmutableList.Builder<PackageFactory.EnvironmentExtension> environmentExtensions =
ImmutableList.builder();
- private final BuildEventArtifactUploaderMap.Builder buildEventArtifactUploaders =
- new BuildEventArtifactUploaderMap.Builder();
+ private final BuildEventArtifactUploaderFactoryMap.Builder buildEventArtifactUploaderFactories =
+ new BuildEventArtifactUploaderFactoryMap.Builder();
@VisibleForTesting
public ServerBuilder() {}
@@ -87,8 +87,8 @@ public final class ServerBuilder {
return commands.build();
}
- public BuildEventArtifactUploaderMap getBuildEventArtifactUploaderMap() {
- return buildEventArtifactUploaders.build();
+ public BuildEventArtifactUploaderFactoryMap getBuildEventArtifactUploaderMap() {
+ return buildEventArtifactUploaderFactories.build();
}
/**
@@ -178,9 +178,9 @@ public final class ServerBuilder {
return this;
}
- public ServerBuilder addBuildEventArtifactUploader(
- BuildEventArtifactUploader uploader, String name) {
- buildEventArtifactUploaders.add(name, uploader);
+ public ServerBuilder addBuildEventArtifactUploaderFactory(
+ BuildEventArtifactUploaderFactory uploaderFactory, String name) {
+ buildEventArtifactUploaderFactories.add(name, uploaderFactory);
return this;
}
}