summaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2018-04-19 11:14:18 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2018-04-20 14:30:20 +0200
commit4d2f0f8073b051acff0e863d1586da7f201933dd (patch)
tree66ecae307061275f3253da25f162955f28438761 /controller-api
parenta504e8980d6796c6ee870438f099f8048da4dcfc (diff)
BuildJob cleanup
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/BuildService.java30
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/stubs/MockBuildService.java5
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);
}
}