Skip to content

Commit

Permalink
stored task data as a serialized type, instead of object
Browse files Browse the repository at this point in the history
  • Loading branch information
antmendoza committed Jan 4, 2024
1 parent cec7aa7 commit 29e3ad9
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 19 deletions.
32 changes: 28 additions & 4 deletions core/src/main/java/io/temporal/samples/taskinteraction/Task.java
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
public class Task {

private String token;
private Object data;
private TaskData data;
private State state;

public Task() {}
Expand All @@ -38,12 +38,12 @@ public String getToken() {
return token;
}

public void setData(Object data) {
public void setData(TaskData data) {
this.data = data;
}

public <T> T result(Class<T> tClass) {
return (T) data;
public TaskData getData() {
return data;
}

public void setState(State state) {
Expand All @@ -69,4 +69,28 @@ public enum State {
started,
completed
}

public static class TaskData {
private String value;

public TaskData() {}

public TaskData(final String value) {

this.value = value;
}

public void setValue(final String value) {
this.value = value;
}

public String getValue() {
return value;
}

@Override
public String toString() {
return "TaskData{" + "value='" + value + '\'' + '}';
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
public interface TaskClient {

@SignalMethod
void updateTask(TaskService.TaskRequest task);
void updateTask(TaskService.UpdateTaskRequest task);

@QueryMethod
List<Task> getOpenTasks();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,22 +41,22 @@ public class TaskService<R> {
new TaskClient() {

@Override
public void updateTask(TaskRequest taskRequest) {
public void updateTask(UpdateTaskRequest updateTaskRequest) {

final String token = taskRequest.getToken();
final String data = taskRequest.getData();
final String token = updateTaskRequest.getToken();
final Task.TaskData data = updateTaskRequest.getData();
tasks.get(token).setData(data);

final Task t = tasks.get(token);

t.setState(taskRequest.state);
t.setState(updateTaskRequest.state);
tasks.put(t.getToken(), t);

logger.info("Task updated: " + t);

if (taskRequest.state == Task.State.completed) {
if (updateTaskRequest.state == Task.State.completed) {
final CompletablePromise<R> completablePromise = pendingPromises.get(token);
completablePromise.complete((R) data);
completablePromise.complete((R) data.getValue());
}
}

Expand Down Expand Up @@ -94,15 +94,15 @@ public interface Callback<T> {
T execute();
}

public static class TaskRequest {
public static class UpdateTaskRequest {

private Task.State state;
private String data;
private Task.TaskData data;
private String token;

public TaskRequest() {}
public UpdateTaskRequest() {}

public TaskRequest(Task.State state, String data, String token) {
public UpdateTaskRequest(Task.State state, Task.TaskData data, String token) {
this.state = state;
this.data = data;
this.token = token;
Expand All @@ -117,7 +117,7 @@ public String getToken() {
return token;
}

public String getData() {
public Task.TaskData getData() {
return data;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,8 +47,8 @@ public static void main(String[] args) {

System.out.println("\nUpdating task " + randomOpenTask + " to " + nextState);
taskClient.updateTask(
new TaskService.TaskRequest(
nextState, "Updated to " + nextState, randomOpenTask.getToken()));
new TaskService.UpdateTaskRequest(
nextState, new Task.TaskData("Updated to " + nextState), randomOpenTask.getToken()));

System.exit(0);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ private static void changeTaskState(TaskClient client, List<Task> tasks, Task.St
tasks.forEach(
t -> {
client.updateTask(
new TaskService.TaskRequest(state, "Changing state to: " + state, t.getToken()));
new TaskService.UpdateTaskRequest(
state, new Task.TaskData("Changing state to: " + state), t.getToken()));
});
}

Expand Down

0 comments on commit 29e3ad9

Please sign in to comment.