Skip to content

Commit 85eab3d

Browse files
committed
Added RootNexusClientInvoker
1 parent 6776443 commit 85eab3d

14 files changed

Lines changed: 1090 additions & 542 deletions
Lines changed: 44 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
11
package io.temporal.client;
22

3-
import io.grpc.Deadline;
4-
import io.temporal.api.workflowservice.v1.*;
3+
import io.temporal.client.NexusClientInterceptor.CountNexusOperationExecutionsInput;
4+
import io.temporal.client.NexusClientInterceptor.CountNexusOperationExecutionsOutput;
5+
import io.temporal.client.NexusClientInterceptor.DeleteNexusOperationExecutionInput;
6+
import io.temporal.client.NexusClientInterceptor.DescribeNexusOperationExecutionInput;
7+
import io.temporal.client.NexusClientInterceptor.DescribeNexusOperationExecutionOutput;
8+
import io.temporal.client.NexusClientInterceptor.ListNexusOperationExecutionsInput;
9+
import io.temporal.client.NexusClientInterceptor.ListNexusOperationExecutionsOutput;
10+
import io.temporal.client.NexusClientInterceptor.PollNexusOperationExecutionInput;
11+
import io.temporal.client.NexusClientInterceptor.PollNexusOperationExecutionOutput;
12+
import io.temporal.client.NexusClientInterceptor.RequestCancelNexusOperationExecutionInput;
13+
import io.temporal.client.NexusClientInterceptor.StartNexusOperationExecutionInput;
14+
import io.temporal.client.NexusClientInterceptor.StartNexusOperationExecutionOutput;
15+
import io.temporal.client.NexusClientInterceptor.TerminateNexusOperationExecutionInput;
516
import io.temporal.common.Experimental;
617
import io.temporal.serviceclient.WorkflowServiceStubs;
7-
8-
import javax.annotation.Nonnull;
9-
import javax.annotation.Nullable;
1018
import java.lang.reflect.Type;
1119
import java.util.concurrent.CompletableFuture;
20+
import javax.annotation.Nullable;
1221

1322
/**
1423
* Handle for interacting with a standalone Nexus operation execution.
@@ -18,92 +27,58 @@
1827
*/
1928
@Experimental
2029
public interface NexusClient {
21-
public static NexusClient newInstance(WorkflowServiceStubs service) {
30+
static NexusClient newInstance(WorkflowServiceStubs service) {
2231
return NexusClientImpl.newInstance(service, NexusClientOperationOptions.getDefaultInstance());
2332
}
2433

25-
//Look at ScheduleClientOptions for an example
26-
public static NexusClient newInstance(WorkflowServiceStubs service, NexusClientOperationOptions options) {
27-
return NexusClientImpl.newInstance(service, options());
34+
static NexusClient newInstance(
35+
WorkflowServiceStubs service, NexusClientOperationOptions options) {
36+
return NexusClientImpl.newInstance(service, options);
2837
}
2938

39+
NexusClientHandle getHandle(String scheduleID);
3040

31-
public NexusClientHandle getHandle(String scheduleID);
32-
33-
34-
UntypedNexusClientHandle getHandle(
35-
String operationId,
36-
@Nullable String operationRunId);
37-
38-
39-
//Handle is a pointer to an already started workflow
40-
//I will need to create this handle
41-
//Create a NexusOperationHandlerImpl and pass everything needed in
42-
//to create this handle
43-
//Follow what schedule client does
44-
//See it's get handle. etc
41+
UntypedNexusClientHandle getHandle(String operationId, @Nullable String operationRunId);
4542

46-
/// Obtains typed handle to existing operations.
43+
/** Obtains typed handle to existing operations. */
4744
<R> NexusClientHandle<R> getHandle(
48-
String operationId,
49-
@Nullable String operationRunId,
50-
Class<R> resultClass);
45+
String operationId, @Nullable String operationRunId, Class<R> resultClass);
5146

52-
/// Obtains typed handle to existing operations.
53-
/// For use with generic return types.
47+
/** Obtains typed handle to existing operations. For use with generic return types. */
5448
<R> NexusClientHandle<R> getHandle(
55-
String operationId,
56-
@Nullable String operationRunId,
57-
Class<R> resultClass,
58-
@Nullable Type resultType);
49+
String operationId,
50+
@Nullable String operationRunId,
51+
Class<R> resultClass,
52+
@Nullable Type resultType);
5953

60-
//untyped -- see the notion doc
61-
//untyped means I don't have the services type, ust the name
6254
UntypedNexusServiceClient newUntypeNexusServiceClient();
6355

6456
<R> NexusServiceClient<R> newNexusServiceClient();
6557

58+
StartNexusOperationExecutionOutput startNexusOperationExecution(
59+
StartNexusOperationExecutionInput input);
6660

61+
DescribeNexusOperationExecutionOutput describeNexusOperationExecution(
62+
DescribeNexusOperationExecutionInput input);
6763

64+
CompletableFuture<DescribeNexusOperationExecutionOutput> describeNexusOperationExecutionAsync(
65+
DescribeNexusOperationExecutionInput input);
6866

69-
//ListNexusOperationExecutionsResponse -- look at the go code to see this
70-
//It is everything we expose for a list
71-
//This should call the nexus list operation
72-
//Again, look at schedule client to see or the ListWorkflowExecutionsOutput om WorkflowClientCallsInterceptor
73-
// Stream<NexusOperationExecutionMetadata> listNexusOperations(String query);
74-
//
75-
// NexusOperationExecutionCount countNexusOperations(String query);
76-
//TODO - EVAN
77-
78-
79-
StartNexusOperationExecutionResponse startNexusOperationExecution(
80-
@Nonnull StartNexusOperationExecutionRequest request);
81-
82-
DescribeNexusOperationExecutionResponse describeNexusOperationExecution(
83-
@Nonnull DescribeNexusOperationExecutionRequest request, @Nonnull Deadline deadline);
84-
85-
CompletableFuture<DescribeNexusOperationExecutionResponse> describeNexusOperationExecutionAsync(
86-
@Nonnull DescribeNexusOperationExecutionRequest request, @Nonnull Deadline deadline);
87-
88-
PollNexusOperationExecutionResponse pollNexusOperationExecution(
89-
@Nonnull PollNexusOperationExecutionRequest request, @Nonnull Deadline deadline);
90-
91-
CompletableFuture<PollNexusOperationExecutionResponse> pollNexusOperationExecutionAsync(
92-
@Nonnull PollNexusOperationExecutionRequest request, @Nonnull Deadline deadline);
67+
PollNexusOperationExecutionOutput pollNexusOperationExecution(
68+
PollNexusOperationExecutionInput input);
9369

94-
ListNexusOperationExecutionsResponse listNexusOperationExecutions(
95-
@Nonnull ListNexusOperationExecutionsRequest request);
70+
CompletableFuture<PollNexusOperationExecutionOutput> pollNexusOperationExecutionAsync(
71+
PollNexusOperationExecutionInput input);
9672

97-
CountNexusOperationExecutionsResponse countNexusOperationExecutions(
98-
@Nonnull CountNexusOperationExecutionsRequest request);
73+
ListNexusOperationExecutionsOutput listNexusOperationExecutions(
74+
ListNexusOperationExecutionsInput input);
9975

100-
RequestCancelNexusOperationExecutionResponse requestCancelNexusOperationExecution(
101-
@Nonnull RequestCancelNexusOperationExecutionRequest request);
76+
CountNexusOperationExecutionsOutput countNexusOperationExecutions(
77+
CountNexusOperationExecutionsInput input);
10278

103-
TerminateNexusOperationExecutionResponse terminateNexusOperationExecution(
104-
@Nonnull TerminateNexusOperationExecutionRequest request);
79+
void requestCancelNexusOperationExecution(RequestCancelNexusOperationExecutionInput input);
10580

106-
DeleteNexusOperationExecutionResponse deleteNexusOperationExecution(
107-
@Nonnull DeleteNexusOperationExecutionRequest request);
81+
void terminateNexusOperationExecution(TerminateNexusOperationExecutionInput input);
10882

83+
void deleteNexusOperationExecution(DeleteNexusOperationExecutionInput input);
10984
}
Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
package io.temporal.client;
22

3-
import javax.annotation.Nullable;
43
import java.lang.reflect.Type;
54
import java.util.concurrent.CompletableFuture;
5+
import javax.annotation.Nullable;
66

77
public interface NexusClientHandle<R> extends UntypedNexusClientHandle {
8-
public <R> NexusClientHandle<R> fromUntyped(
9-
UntypedNexusClientHandle handle, Class<R> resultClass);
10-
public <R> NexusClientHandle<R> fromUntyped(
11-
UntypedNexusClientHandle handle,
12-
Class<R> resultClass,
13-
@Nullable Type resultType);
8+
public <R> NexusClientHandle<R> fromUntyped(
9+
UntypedNexusClientHandle handle, Class<R> resultClass);
10+
11+
public <R> NexusClientHandle<R> fromUntyped(
12+
UntypedNexusClientHandle handle, Class<R> resultClass, @Nullable Type resultType);
13+
14+
public R getResult();
1415

15-
public R getResult();
16-
public CompletableFuture<R> getResultAsync();
16+
public CompletableFuture<R> getResultAsync();
1717
}
Lines changed: 51 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -1,85 +1,74 @@
11
package io.temporal.client;
22

3-
import javax.annotation.Nullable;
43
import java.lang.reflect.Type;
54
import java.util.concurrent.CompletableFuture;
5+
import javax.annotation.Nullable;
66

77
public class NexusClientHandleImpl<R> implements NexusClientHandle<R> {
88

9-
private final NexusClientInterceptor interceptor;
10-
11-
public (NexusClientInterceptor interceptor) {
12-
this.interceptor = interceptor;
13-
}
14-
15-
public <T> NexusClientHandle<T> fromUntyped(
16-
UntypedNexusClientHandle handle, Class<T> resultClass) {
17-
return null;
18-
}
19-
20-
public <T> NexusClientHandle<T> fromUntyped(
21-
UntypedNexusClientHandle handle,
22-
Class<T> resultClass,
23-
@Nullable Type resultType) {
24-
return null;
25-
}
26-
27-
public R getResult() {
28-
return null;
29-
}
30-
31-
public CompletableFuture<R> getResultAsync() {
32-
return null;
33-
}
9+
private final NexusClientInterceptor interceptor;
3410

35-
@Override
36-
public @Nullable String getNexusOperationRunId() {
37-
return "";
38-
}
11+
public NexusClientHandleImpl(NexusClientInterceptor interceptor) {
12+
this.interceptor = interceptor;
13+
}
3914

40-
@Override
41-
public <R> R getResult(Class<R> resultClass) {
42-
return null;
43-
}
15+
public <T> NexusClientHandle<T> fromUntyped(
16+
UntypedNexusClientHandle handle, Class<T> resultClass) {
17+
return null;
18+
}
4419

45-
@Override
46-
public <R> R getResult(Class<R> resultClass, @Nullable Type resultType) {
47-
return null;
48-
}
20+
public <T> NexusClientHandle<T> fromUntyped(
21+
UntypedNexusClientHandle handle, Class<T> resultClass, @Nullable Type resultType) {
22+
return null;
23+
}
4924

50-
@Override
51-
public <R> CompletableFuture<R> getResultAsync(Class<R> resultClass) {
52-
return null;
53-
}
25+
public R getResult() {
26+
return null;
27+
}
5428

55-
@Override
56-
public <R> CompletableFuture<R> getResultAsync(Class<R> resultClass, @Nullable Type resultType) {
57-
return null;
58-
}
29+
public CompletableFuture<R> getResultAsync() {
30+
return null;
31+
}
5932

60-
@Override
61-
public describe() {
62-
return null;
63-
}
33+
@Override
34+
public @Nullable String getNexusOperationRunId() {
35+
return "";
36+
}
6437

65-
@Override
66-
public void cancel() {
38+
@Override
39+
public <R> R getResult(Class<R> resultClass) {
40+
return null;
41+
}
6742

68-
}
43+
@Override
44+
public <R> R getResult(Class<R> resultClass, @Nullable Type resultType) {
45+
return null;
46+
}
6947

70-
@Override
71-
public void cancel(@Nullable String reason) {
48+
@Override
49+
public <R> CompletableFuture<R> getResultAsync(Class<R> resultClass) {
50+
return null;
51+
}
7252

73-
}
53+
@Override
54+
public <R> CompletableFuture<R> getResultAsync(Class<R> resultClass, @Nullable Type resultType) {
55+
return null;
56+
}
7457

75-
@Override
76-
public void terminate() {
58+
@Override
59+
public NexusClientOperationExecutionDescription describe() {
60+
return null;
61+
}
7762

78-
}
63+
@Override
64+
public void cancel() {}
7965

80-
@Override
81-
public void terminate(@Nullable String reason) {
66+
@Override
67+
public void cancel(@Nullable String reason) {}
8268

83-
}
69+
@Override
70+
public void terminate() {}
8471

72+
@Override
73+
public void terminate(@Nullable String reason) {}
8574
}

0 commit comments

Comments
 (0)