diff options
author | 2018-07-09 05:55:40 -0700 | |
---|---|---|
committer | 2018-07-09 05:57:06 -0700 | |
commit | 35ff63a50997ca3af603629ee2d9d30b44aae27b (patch) | |
tree | 5b7c4a84cd01fb83fd82c8dc0b883766d0f37a1a /src/main/java/com/google/devtools/build/lib/runtime | |
parent | 28fcf285f8b7a2af707c95ac2aee677d9e3a9520 (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.java | 12 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/runtime/ServerBuilder.java | 18 |
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; } } |