Skip to content

Commit d43fbf2

Browse files
committed
query to verify
1 parent 2bdb2e4 commit d43fbf2

File tree

4 files changed

+50
-15
lines changed

4 files changed

+50
-15
lines changed

core/src/main/java/io/temporal/samples/updatewithstart/UpdateWithStartClient.java

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import io.temporal.api.enums.v1.WorkflowIdReusePolicy;
2424
import io.temporal.client.*;
2525
import io.temporal.serviceclient.WorkflowServiceStubs;
26+
import java.util.UUID;
2627

2728
public class UpdateWithStartClient {
2829
private static final String TASK_QUEUE = "UpdateWithStartTQ";
@@ -46,11 +47,13 @@ private static void runWorkflowWithUpdateWithStart(
4647
WorkflowClient client, WorkflowOptions options) {
4748

4849
var args = new StartWorkflowRequest();
50+
args.setValue(UUID.randomUUID().toString());
4951

5052
UpdateWithStartWorkflow workflow =
5153
client.newWorkflowStub(UpdateWithStartWorkflow.class, options);
5254

5355
try {
56+
// // First I tried this to updateWithStart
5457
// var result =
5558
// WorkflowClient.executeUpdateWithStart(
5659
// workflow::putApplication,
@@ -63,17 +66,25 @@ private static void runWorkflowWithUpdateWithStart(
6366
workflow::putApplication,
6467
args,
6568
UpdateOptions.<UpdateWithStartWorkflowState>newBuilder()
66-
.setWaitForStage(WorkflowUpdateStage.ACCEPTED)
69+
.setWaitForStage(WorkflowUpdateStage.COMPLETED)
6770
.build(),
6871
new WithStartWorkflowOperation<>(workflow::execute, args));
6972
var result = handle.getResult();
7073

7174
System.out.println(
7275
"Workflow UwS with value: "
73-
+ result.getArgs().getValue()
76+
+ result.getInitArgs().getValue()
7477
+ ", with updates count:"
7578
+ result.getUpdates().size());
7679

80+
System.out.println(
81+
"Workflow QUERY with initArgs: "
82+
+ workflow.getState().getInitArgs().getValue()
83+
+ "\n with updates: "
84+
+ workflow.getState().getUpdates().size()
85+
+ "\nwith execute args "
86+
+ workflow.getState().getExecuteArgs().getValue());
87+
7788
} catch (WorkflowExecutionAlreadyStarted e) {
7889
System.err.println("WorkflowAlreadyStarted" + e);
7990
} catch (WorkflowServiceException e) {

core/src/main/java/io/temporal/samples/updatewithstart/UpdateWithStartWorkflow.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
package io.temporal.samples.updatewithstart;
2121

22+
import io.temporal.workflow.QueryMethod;
2223
import io.temporal.workflow.UpdateMethod;
2324
import io.temporal.workflow.WorkflowInterface;
2425
import io.temporal.workflow.WorkflowMethod;
@@ -30,4 +31,7 @@ public interface UpdateWithStartWorkflow {
3031

3132
@UpdateMethod
3233
UpdateWithStartWorkflowState putApplication(StartWorkflowRequest args);
34+
35+
@QueryMethod
36+
UpdateWithStartWorkflowState getState();
3337
}

core/src/main/java/io/temporal/samples/updatewithstart/UpdateWithStartWorkflowImpl.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,28 +19,43 @@
1919

2020
package io.temporal.samples.updatewithstart;
2121

22+
import io.temporal.workflow.Workflow;
2223
import io.temporal.workflow.WorkflowInit;
24+
import org.slf4j.Logger;
25+
import org.slf4j.LoggerFactory;
2326

2427
public class UpdateWithStartWorkflowImpl implements UpdateWithStartWorkflow {
25-
// private static final Logger log = LoggerFactory.getLogger(UpdateWithStartWorkflowImpl.class);
28+
private static final Logger log = LoggerFactory.getLogger(UpdateWithStartWorkflowImpl.class);
2629
private UpdateWithStartWorkflowState state;
2730

2831
@WorkflowInit
2932
public UpdateWithStartWorkflowImpl(StartWorkflowRequest args) {
30-
this.state = new UpdateWithStartWorkflowState(args);
33+
this.state = new UpdateWithStartWorkflowState();
34+
this.state.setInitArgs(args);
35+
System.out.println("WorkflowInit args = " + args);
3136
}
3237

3338
@Override
3439
public void execute(StartWorkflowRequest args) {
40+
log.info("Workflow started {}", args);
41+
42+
this.state.setExecuteArgs(args);
3543
System.out.println("execute called");
36-
// log.info("Workflow started {}", args);
44+
45+
Workflow.await(() -> this.state.getUpdates().size() == 2);
3746
}
3847

3948
@Override
4049
public UpdateWithStartWorkflowState putApplication(StartWorkflowRequest args) {
41-
System.out.println("putApplication called");
50+
4251
this.state.getUpdates().add(args);
52+
System.out.println("put application called " + this.state.getUpdates().size());
53+
return this.state;
54+
}
4355

56+
@Override
57+
public UpdateWithStartWorkflowState getState() {
58+
System.out.println("getState called " + this.state.getInitArgs().getValue());
4459
return this.state;
4560
}
4661
}

core/src/main/java/io/temporal/samples/updatewithstart/UpdateWithStartWorkflowState.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,18 @@
44
import java.util.List;
55

66
public class UpdateWithStartWorkflowState {
7-
private StartWorkflowRequest args;
7+
private StartWorkflowRequest initArgs;
8+
private StartWorkflowRequest executeArgs;
89
private List<StartWorkflowRequest> updates = new ArrayList<>();
910

1011
public UpdateWithStartWorkflowState() {}
1112

12-
public UpdateWithStartWorkflowState(StartWorkflowRequest args) {
13-
this.args = args;
13+
public StartWorkflowRequest getInitArgs() {
14+
return initArgs;
1415
}
1516

16-
public StartWorkflowRequest getArgs() {
17-
return args;
18-
}
19-
20-
public void setArgs(StartWorkflowRequest args) {
21-
this.args = args;
17+
public void setInitArgs(StartWorkflowRequest initArgs) {
18+
this.initArgs = initArgs;
2219
}
2320

2421
public List<StartWorkflowRequest> getUpdates() {
@@ -28,4 +25,12 @@ public List<StartWorkflowRequest> getUpdates() {
2825
public void setUpdates(List<StartWorkflowRequest> updates) {
2926
this.updates = updates;
3027
}
28+
29+
public StartWorkflowRequest getExecuteArgs() {
30+
return executeArgs;
31+
}
32+
33+
public void setExecuteArgs(StartWorkflowRequest executeArgs) {
34+
this.executeArgs = executeArgs;
35+
}
3136
}

0 commit comments

Comments
 (0)