Skip to content

Commit e04a422

Browse files
committed
initial commit
1 parent e77af14 commit e04a422

2 files changed

Lines changed: 46 additions & 10 deletions

File tree

client/src/main/java/com/microsoft/durabletask/DurableTaskGrpcClient.java

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,22 +2,30 @@
22
// Licensed under the MIT License.
33
package com.microsoft.durabletask;
44

5-
import com.google.protobuf.StringValue;
6-
import com.google.protobuf.Timestamp;
7-
import com.microsoft.durabletask.implementation.protobuf.OrchestratorService.*;
8-
import com.microsoft.durabletask.implementation.protobuf.TaskHubSidecarServiceGrpc;
9-
import com.microsoft.durabletask.implementation.protobuf.TaskHubSidecarServiceGrpc.*;
10-
11-
import io.grpc.*;
12-
13-
import javax.annotation.Nullable;
145
import java.time.Duration;
156
import java.time.Instant;
16-
import java.util.*;
7+
import java.util.ArrayList;
8+
import java.util.List;
9+
import java.util.Optional;
10+
import java.util.UUID;
1711
import java.util.concurrent.TimeUnit;
1812
import java.util.concurrent.TimeoutException;
1913
import java.util.logging.Logger;
2014

15+
import javax.annotation.Nullable;
16+
17+
import com.google.protobuf.StringValue;
18+
import com.google.protobuf.Timestamp;
19+
import com.microsoft.durabletask.implementation.protobuf.OrchestratorService.*;
20+
import com.microsoft.durabletask.implementation.protobuf.TaskHubSidecarServiceGrpc;
21+
import com.microsoft.durabletask.implementation.protobuf.TaskHubSidecarServiceGrpc.TaskHubSidecarServiceBlockingStub;
22+
23+
import io.grpc.Channel;
24+
import io.grpc.ManagedChannel;
25+
import io.grpc.ManagedChannelBuilder;
26+
import io.grpc.Status;
27+
import io.grpc.StatusRuntimeException;
28+
2129
/**
2230
* Durable Task client implementation that uses gRPC to connect to a remote "sidecar" process.
2331
*/
@@ -110,6 +118,16 @@ public String scheduleNewOrchestrationInstance(
110118
builder.setScheduledStartTimestamp(ts);
111119
}
112120

121+
String traceParent = options.getTraceParent();
122+
String traceState = options.getTraceState();
123+
if (traceParent != null) {
124+
TraceContext traceContext = TraceContext.newBuilder()
125+
.setTraceParent(traceParent)
126+
.setTraceState(traceState != null ? StringValue.of(traceState) : StringValue.getDefaultInstance())
127+
.build();
128+
builder.setParentTraceContext(traceContext); // Set the TraceContext in the CreateInstanceRequest
129+
}
130+
113131
CreateInstanceRequest request = builder.build();
114132
CreateInstanceResponse response = this.sidecarClient.startInstance(request);
115133
return response.getInstanceId();

client/src/main/java/com/microsoft/durabletask/NewOrchestrationInstanceOptions.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ public final class NewOrchestrationInstanceOptions {
1212
private String instanceId;
1313
private Object input;
1414
private Instant startTime;
15+
private String traceParent;
16+
private String traceState;
1517

1618
/**
1719
* Default constructor for the {@link NewOrchestrationInstanceOptions} class.
@@ -106,4 +108,20 @@ public Object getInput() {
106108
public Instant getStartTime() {
107109
return this.startTime;
108110
}
111+
112+
public String getTraceParent() {
113+
return traceParent;
114+
}
115+
116+
public void setTraceParent(String traceParent) {
117+
this.traceParent = traceParent;
118+
}
119+
120+
public String getTraceState() {
121+
return traceState;
122+
}
123+
124+
public void setTraceState(String traceState) {
125+
this.traceState = traceState;
126+
}
109127
}

0 commit comments

Comments
 (0)