Skip to content

Commit 29e3ad9

Browse files
committed
stored task data as a serialized type, instead of object
1 parent cec7aa7 commit 29e3ad9

File tree

5 files changed

+44
-19
lines changed

5 files changed

+44
-19
lines changed

core/src/main/java/io/temporal/samples/taskinteraction/Task.java

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
public class Task {
2525

2626
private String token;
27-
private Object data;
27+
private TaskData data;
2828
private State state;
2929

3030
public Task() {}
@@ -38,12 +38,12 @@ public String getToken() {
3838
return token;
3939
}
4040

41-
public void setData(Object data) {
41+
public void setData(TaskData data) {
4242
this.data = data;
4343
}
4444

45-
public <T> T result(Class<T> tClass) {
46-
return (T) data;
45+
public TaskData getData() {
46+
return data;
4747
}
4848

4949
public void setState(State state) {
@@ -69,4 +69,28 @@ public enum State {
6969
started,
7070
completed
7171
}
72+
73+
public static class TaskData {
74+
private String value;
75+
76+
public TaskData() {}
77+
78+
public TaskData(final String value) {
79+
80+
this.value = value;
81+
}
82+
83+
public void setValue(final String value) {
84+
this.value = value;
85+
}
86+
87+
public String getValue() {
88+
return value;
89+
}
90+
91+
@Override
92+
public String toString() {
93+
return "TaskData{" + "value='" + value + '\'' + '}';
94+
}
95+
}
7296
}

core/src/main/java/io/temporal/samples/taskinteraction/TaskClient.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
public interface TaskClient {
2828

2929
@SignalMethod
30-
void updateTask(TaskService.TaskRequest task);
30+
void updateTask(TaskService.UpdateTaskRequest task);
3131

3232
@QueryMethod
3333
List<Task> getOpenTasks();

core/src/main/java/io/temporal/samples/taskinteraction/TaskService.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,22 +41,22 @@ public class TaskService<R> {
4141
new TaskClient() {
4242

4343
@Override
44-
public void updateTask(TaskRequest taskRequest) {
44+
public void updateTask(UpdateTaskRequest updateTaskRequest) {
4545

46-
final String token = taskRequest.getToken();
47-
final String data = taskRequest.getData();
46+
final String token = updateTaskRequest.getToken();
47+
final Task.TaskData data = updateTaskRequest.getData();
4848
tasks.get(token).setData(data);
4949

5050
final Task t = tasks.get(token);
5151

52-
t.setState(taskRequest.state);
52+
t.setState(updateTaskRequest.state);
5353
tasks.put(t.getToken(), t);
5454

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

57-
if (taskRequest.state == Task.State.completed) {
57+
if (updateTaskRequest.state == Task.State.completed) {
5858
final CompletablePromise<R> completablePromise = pendingPromises.get(token);
59-
completablePromise.complete((R) data);
59+
completablePromise.complete((R) data.getValue());
6060
}
6161
}
6262

@@ -94,15 +94,15 @@ public interface Callback<T> {
9494
T execute();
9595
}
9696

97-
public static class TaskRequest {
97+
public static class UpdateTaskRequest {
9898

9999
private Task.State state;
100-
private String data;
100+
private Task.TaskData data;
101101
private String token;
102102

103-
public TaskRequest() {}
103+
public UpdateTaskRequest() {}
104104

105-
public TaskRequest(Task.State state, String data, String token) {
105+
public UpdateTaskRequest(Task.State state, Task.TaskData data, String token) {
106106
this.state = state;
107107
this.data = data;
108108
this.token = token;
@@ -117,7 +117,7 @@ public String getToken() {
117117
return token;
118118
}
119119

120-
public String getData() {
120+
public Task.TaskData getData() {
121121
return data;
122122
}
123123
}

core/src/main/java/io/temporal/samples/taskinteraction/client/UpdateTask.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ public static void main(String[] args) {
4747

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

5353
System.exit(0);
5454
}

core/src/test/java/io/temporal/samples/taskinteraction/TaskWorkflowImplTest.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ private static void changeTaskState(TaskClient client, List<Task> tasks, Task.St
105105
tasks.forEach(
106106
t -> {
107107
client.updateTask(
108-
new TaskService.TaskRequest(state, "Changing state to: " + state, t.getToken()));
108+
new TaskService.UpdateTaskRequest(
109+
state, new Task.TaskData("Changing state to: " + state), t.getToken()));
109110
});
110111
}
111112

0 commit comments

Comments
 (0)