diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-04-19 11:14:18 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-04-20 14:30:20 +0200 |
commit | 4d2f0f8073b051acff0e863d1586da7f201933dd (patch) | |
tree | 66ecae307061275f3253da25f162955f28438761 /controller-api | |
parent | a504e8980d6796c6ee870438f099f8048da4dcfc (diff) |
BuildJob cleanup
Diffstat (limited to 'controller-api')
2 files changed, 23 insertions, 12 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java index d853443bf5d..937df497133 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java @@ -1,7 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.api.integration; -import java.util.Objects; +import com.yahoo.config.provision.ApplicationId; /** * @author jvenstad @@ -21,37 +21,47 @@ public interface BuildService { boolean isRunning(BuildJob buildJob); - // TODO jvenstad: Implement with DeploymentTrigger.Job class BuildJob { + private final ApplicationId applicationId; private final long projectId; private final String jobName; - public BuildJob(long projectId, String jobName) { + protected BuildJob(ApplicationId applicationId, long projectId, String jobName) { + this.applicationId = applicationId; this.projectId = projectId; this.jobName = jobName; } + public static BuildJob of(ApplicationId applicationId, long projectId, String jobName) { + return new BuildJob(applicationId, projectId, jobName); + } + + public ApplicationId applicationId() { return applicationId; } public long projectId() { return projectId; } public String jobName() { return jobName; } @Override - public boolean equals(Object o) { + public final boolean equals(Object o) { if (this == o) return true; if ( ! (o instanceof BuildJob)) return false; + BuildJob buildJob = (BuildJob) o; - return projectId == buildJob.projectId && - Objects.equals(jobName, buildJob.jobName); + + if (projectId != buildJob.projectId) return false; + return jobName.equals(buildJob.jobName); } @Override - public String toString() { - return jobName + "@" + projectId; + public final int hashCode() { + int result = (int) (projectId ^ (projectId >>> 32)); + result = 31 * result + jobName.hashCode(); + return result; } @Override - public int hashCode() { - return Objects.hash(projectId, jobName); + public String toString() { + return jobName + " for " + applicationId + " with project " + projectId; } } diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java index b942a6baa98..9219619dc9e 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.hosted.controller.api.integration.stubs; import com.yahoo.component.AbstractComponent; +import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.hosted.controller.api.integration.BuildService; import java.util.ArrayList; @@ -36,8 +37,8 @@ public class MockBuildService extends AbstractComponent implements BuildService } /** Removes the given job for the given project and returns whether it was found. */ - public boolean removeJob(long projectId, String jobType) { - return jobs.remove(new BuildJob(projectId, jobType)); + public boolean remove(BuildJob buildJob) { + return jobs.remove(buildJob); } } |