diff --git a/core/src/main/java/io/temporal/samples/taskinteraction/Task.java b/core/src/main/java/io/temporal/samples/taskinteraction/Task.java index ac62240b..e7f396a3 100644 --- a/core/src/main/java/io/temporal/samples/taskinteraction/Task.java +++ b/core/src/main/java/io/temporal/samples/taskinteraction/Task.java @@ -24,7 +24,7 @@ public class Task { private String token; - private Object data; + private TaskData data; private State state; public Task() {} @@ -38,12 +38,12 @@ public String getToken() { return token; } - public void setData(Object data) { + public void setData(TaskData data) { this.data = data; } - public T result(Class tClass) { - return (T) data; + public TaskData getData() { + return data; } public void setState(State state) { @@ -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 + '\'' + '}'; + } + } } diff --git a/core/src/main/java/io/temporal/samples/taskinteraction/TaskClient.java b/core/src/main/java/io/temporal/samples/taskinteraction/TaskClient.java index 32ebd1ba..9eb251a4 100644 --- a/core/src/main/java/io/temporal/samples/taskinteraction/TaskClient.java +++ b/core/src/main/java/io/temporal/samples/taskinteraction/TaskClient.java @@ -27,7 +27,7 @@ public interface TaskClient { @SignalMethod - void updateTask(TaskService.TaskRequest task); + void updateTask(TaskService.UpdateTaskRequest task); @QueryMethod List getOpenTasks(); diff --git a/core/src/main/java/io/temporal/samples/taskinteraction/TaskService.java b/core/src/main/java/io/temporal/samples/taskinteraction/TaskService.java index d2f31574..61c249ee 100644 --- a/core/src/main/java/io/temporal/samples/taskinteraction/TaskService.java +++ b/core/src/main/java/io/temporal/samples/taskinteraction/TaskService.java @@ -41,22 +41,22 @@ public class TaskService { 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 completablePromise = pendingPromises.get(token); - completablePromise.complete((R) data); + completablePromise.complete((R) data.getValue()); } } @@ -94,15 +94,15 @@ public interface Callback { 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; @@ -117,7 +117,7 @@ public String getToken() { return token; } - public String getData() { + public Task.TaskData getData() { return data; } } diff --git a/core/src/main/java/io/temporal/samples/taskinteraction/client/UpdateTask.java b/core/src/main/java/io/temporal/samples/taskinteraction/client/UpdateTask.java index aeaa8209..5878b121 100644 --- a/core/src/main/java/io/temporal/samples/taskinteraction/client/UpdateTask.java +++ b/core/src/main/java/io/temporal/samples/taskinteraction/client/UpdateTask.java @@ -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); } diff --git a/core/src/test/java/io/temporal/samples/taskinteraction/TaskWorkflowImplTest.java b/core/src/test/java/io/temporal/samples/taskinteraction/TaskWorkflowImplTest.java index 5cf855d8..617d3007 100644 --- a/core/src/test/java/io/temporal/samples/taskinteraction/TaskWorkflowImplTest.java +++ b/core/src/test/java/io/temporal/samples/taskinteraction/TaskWorkflowImplTest.java @@ -105,7 +105,8 @@ private static void changeTaskState(TaskClient client, List 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())); }); }