aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/buildeventstream
diff options
context:
space:
mode:
authorGravatar tomlu <tomlu@google.com>2018-07-11 10:55:10 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-11 10:57:11 -0700
commite0a68ab35294b0acff1226d74744957780967ae4 (patch)
tree75ace4ba8b4a03db2d0a216b2dd4898f1a099a83 /src/main/java/com/google/devtools/build/lib/buildeventstream
parentf4a3dd9b8124dc7b2795f89e6700881b66371e4f (diff)
Pass options to BuildEventArtifactUploaderFactory.
The artifact uploaders may need command-level options. RELNOTES: None PiperOrigin-RevId: 204151808
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/buildeventstream')
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java7
-rw-r--r--src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java24
2 files changed, 22 insertions, 9 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java
index bee7c40433..d2cc64e6b1 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/BuildEventArtifactUploaderFactory.java
@@ -15,14 +15,17 @@ package com.google.devtools.build.lib.buildeventstream;
import static com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploader.LOCAL_FILES_UPLOADER;
+import com.google.devtools.common.options.OptionsProvider;
+
/** A factory for {@link BuildEventArtifactUploader}. */
public interface BuildEventArtifactUploaderFactory {
- BuildEventArtifactUploaderFactory LOCAL_FILES_UPLOADER_FACTORY = () -> LOCAL_FILES_UPLOADER;
+ BuildEventArtifactUploaderFactory LOCAL_FILES_UPLOADER_FACTORY =
+ (OptionsProvider options) -> LOCAL_FILES_UPLOADER;
/**
* Returns a new instance of a {@link BuildEventArtifactUploader}. The call is responsible for
* calling {@link BuildEventArtifactUploader#shutdown()} on the returned instance.
*/
- BuildEventArtifactUploader create();
+ BuildEventArtifactUploader create(OptionsProvider options);
}
diff --git a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java
index 6cc539418d..cafc20ac29 100644
--- a/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/buildeventstream/transports/BuildEventTransportFactory.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.buildeventstream.transports;
+import static com.google.common.base.Preconditions.checkNotNull;
import static com.google.common.base.Strings.isNullOrEmpty;
import com.google.common.collect.ImmutableSet;
@@ -22,6 +23,7 @@ import com.google.devtools.build.lib.buildeventstream.BuildEventArtifactUploader
import com.google.devtools.build.lib.buildeventstream.BuildEventProtocolOptions;
import com.google.devtools.build.lib.buildeventstream.BuildEventTransport;
import com.google.devtools.build.lib.util.AbruptExitException;
+import com.google.devtools.common.options.OptionsProvider;
import java.io.IOException;
import java.util.function.Consumer;
@@ -105,19 +107,27 @@ public enum BuildEventTransportFactory {
* @throws IOException Exception propagated from a {@link BuildEventTransport} creation failure.
*/
public static ImmutableSet<BuildEventTransport> createFromOptions(
- BuildEventStreamOptions options,
- BuildEventProtocolOptions protocolOptions,
+ OptionsProvider options,
BuildEventArtifactUploaderFactoryMap artifactUploaders,
Consumer<AbruptExitException> exitFunc)
throws IOException {
+ BuildEventStreamOptions bepOptions =
+ checkNotNull(
+ options.getOptions(BuildEventStreamOptions.class),
+ "Could not get BuildEventStreamOptions.");
+ BuildEventProtocolOptions protocolOptions =
+ checkNotNull(
+ options.getOptions(BuildEventProtocolOptions.class),
+ "Could not get BuildEventProtocolOptions.");
ImmutableSet.Builder<BuildEventTransport> buildEventTransportsBuilder = ImmutableSet.builder();
for (BuildEventTransportFactory transportFactory : BuildEventTransportFactory.values()) {
- if (transportFactory.enabled(options)) {
- BuildEventArtifactUploader uploader = transportFactory.usePathConverter(options)
- ? artifactUploaders.select(protocolOptions.buildEventUploadStrategy).create()
- : BuildEventArtifactUploader.LOCAL_FILES_UPLOADER;
+ if (transportFactory.enabled(bepOptions)) {
+ BuildEventArtifactUploader uploader =
+ transportFactory.usePathConverter(bepOptions)
+ ? artifactUploaders.select(protocolOptions.buildEventUploadStrategy).create(options)
+ : BuildEventArtifactUploader.LOCAL_FILES_UPLOADER;
buildEventTransportsBuilder.add(
- transportFactory.create(options, protocolOptions, uploader, exitFunc));
+ transportFactory.create(bepOptions, protocolOptions, uploader, exitFunc));
}
}
return buildEventTransportsBuilder.build();