diff options
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DelegatingBuildService.java')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DelegatingBuildService.java | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DelegatingBuildService.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DelegatingBuildService.java new file mode 100644 index 00000000000..d2159841c9d --- /dev/null +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DelegatingBuildService.java @@ -0,0 +1,30 @@ +package com.yahoo.vespa.hosted.controller.deployment; + +import com.yahoo.vespa.hosted.controller.api.integration.BuildService; + +/** + * Sends build jobs to an internal build system whenever it accepts them, or to an external one otherwise. + * + * @author jonmv + */ +public class DelegatingBuildService implements BuildService { + + private final BuildService external; + private final BuildService internal; + + public DelegatingBuildService(BuildService external, BuildService internal) { + this.external = external; + this.internal = internal; + } + + @Override + public void trigger(BuildJob buildJob) { + (internal.builds(buildJob) ? internal : external).trigger(buildJob); + } + + @Override + public JobState stateOf(BuildJob buildJob) { + return (internal.builds(buildJob) ? internal : external).stateOf(buildJob); + } + +} |