All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hubspot.blazar.config.ExecutorConfiguration Maven / Gradle / Ivy

The newest version!
package com.hubspot.blazar.config;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.base.Objects;
import com.google.common.base.Optional;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import java.util.concurrent.TimeUnit;

public class ExecutorConfiguration {

  @NotNull
  private final String defaultBuildUser;

  @Min(0)
  private final long buildTimeoutMillis;

  @JsonCreator
  public ExecutorConfiguration(@JsonProperty("defaultBuildUser") Optional defaultBuildUser,
                               @JsonProperty("buildTimeoutMillis") Optional buildTimeoutMillis) {
    this.defaultBuildUser = Objects.firstNonNull(defaultBuildUser, Optional.absent()).or("root");
    this.buildTimeoutMillis = Objects.firstNonNull(buildTimeoutMillis, Optional.absent()).or(TimeUnit.MINUTES.toMillis(20));
  }

  public static ExecutorConfiguration defaultConfiguration() {
    return new ExecutorConfiguration(null, null);
  }

  public String getDefaultBuildUser() {
    return defaultBuildUser;
  }

  public long getBuildTimeoutMillis() {
    return buildTimeoutMillis;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy