Skip to content

Commit

Permalink
fix(cf): Task and CreateTask JSON deserialization issues (#3818)
Browse files Browse the repository at this point in the history
* fix(cf): Task and CreateTask JSON deserialization issues

* Using a builder for consistency
  • Loading branch information
Pierre Delagrave authored and claymccoy committed Jun 26, 2019
1 parent 2be13aa commit 6285c06
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public class Tasks {
private final TaskService api;

public Task createTask(String applicationGuid, String command, String name) {
CreateTask createTask = new CreateTask(name, command);
CreateTask createTask = CreateTask.builder().command(command).name(name).build();

return safelyCall(() -> api.createTask(applicationGuid, createTask))
.orElseThrow(ResourceNotFoundException::new);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,19 @@

package com.netflix.spinnaker.clouddriver.cloudfoundry.client.model.v3;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import javax.annotation.Nullable;
import lombok.Builder;
import lombok.Value;

@Value
@JsonDeserialize(builder = CreateTask.CreateTaskBuilder.class)
@Builder
public class CreateTask {
@Nullable private final String name;
private final String command;
@Nullable private String name;
private String command;

@JsonPOJOBuilder(withPrefix = "")
public static class CreateTaskBuilder {}
}
Original file line number Diff line number Diff line change
Expand Up @@ -16,20 +16,28 @@

package com.netflix.spinnaker.clouddriver.cloudfoundry.client.model.v3;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder;
import java.time.ZonedDateTime;
import lombok.Builder;
import lombok.Value;

@Value
@JsonDeserialize(builder = Task.TaskBuilder.class)
@Builder
public class Task {
private final String guid;
private final String name;
private final State state;
private final ZonedDateTime createdAt;
private final ZonedDateTime updatedAt;
private String guid;
private String name;
private State state;
private ZonedDateTime createdAt;
private ZonedDateTime updatedAt;

public enum State {
SUCCEEDED,
RUNNING,
FAILED
}

@JsonPOJOBuilder(withPrefix = "")
public static class TaskBuilder {}
}

0 comments on commit 6285c06

Please sign in to comment.