Skip to content

Commit bfd521d

Browse files
authored
Changed WorkerOption to fallback and use WorkflowClient tracer instead of NoopTracer (#883)
What changed? WorkflowOptions will now fallback and use WorkflowClient's tracer. Expose getOptions on IWorkflowService interface. Why? Make it easier to set tracer. Previously, it's required to set tracer both on the client and worker. Now setting tracer only on client should just work. How did you test it? Unit Test
1 parent f715975 commit bfd521d

File tree

13 files changed

+63
-14
lines changed

13 files changed

+63
-14
lines changed

src/main/java/com/uber/cadence/internal/compatibility/Thrift2ProtoAdapter.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,7 @@
103103
import com.uber.cadence.internal.compatibility.proto.serviceclient.IGrpcServiceStubs;
104104
import com.uber.cadence.internal.compatibility.thrift.ErrorMapper;
105105
import com.uber.cadence.internal.compatibility.thrift.ResponseMapper;
106+
import com.uber.cadence.serviceclient.ClientOptions;
106107
import com.uber.cadence.serviceclient.IWorkflowService;
107108
import io.grpc.Deadline;
108109
import io.grpc.StatusRuntimeException;
@@ -121,6 +122,11 @@ public Thrift2ProtoAdapter(IGrpcServiceStubs grpcServiceStubs) {
121122
this.grpcServiceStubs = grpcServiceStubs;
122123
}
123124

125+
@Override
126+
public ClientOptions getOptions() {
127+
return grpcServiceStubs.getOptions();
128+
}
129+
124130
@Override
125131
public void RegisterDomain(RegisterDomainRequest registerRequest)
126132
throws BadRequestError, DomainAlreadyExistsError, ServiceBusyError,

src/main/java/com/uber/cadence/internal/compatibility/proto/serviceclient/GrpcServiceStubs.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ final class GrpcServiceStubs implements IGrpcServiceStubs {
8181

8282
private static final String CLIENT_IMPL_HEADER_VALUE = "uber-java";
8383

84+
private final ClientOptions options;
8485
private final ManagedChannel channel;
8586
private final boolean shutdownChannel;
8687
private final AtomicBoolean shutdownRequested = new AtomicBoolean();
@@ -96,6 +97,7 @@ final class GrpcServiceStubs implements IGrpcServiceStubs {
9697
private final MetaAPIGrpc.MetaAPIFutureStub metaFutureStub;
9798

9899
GrpcServiceStubs(ClientOptions options) {
100+
this.options = options;
99101
if (options.getGRPCChannel() != null) {
100102
this.channel = options.getGRPCChannel();
101103
shutdownChannel = false;
@@ -290,6 +292,11 @@ public DomainAPIGrpc.DomainAPIFutureStub domainFutureStub() {
290292
return domainFutureStub;
291293
}
292294

295+
@Override
296+
public ClientOptions getOptions() {
297+
return options;
298+
}
299+
293300
@Override
294301
public VisibilityAPIBlockingStub visibilityBlockingStub() {
295302
return visibilityBlockingStub;

src/main/java/com/uber/cadence/internal/compatibility/proto/serviceclient/IGrpcServiceStubs.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@ static IGrpcServiceStubs newInstance(ClientOptions options) {
3939
return new GrpcServiceStubs(options);
4040
}
4141

42+
ClientOptions getOptions();
43+
4244
/** @return Blocking (synchronous) stub to domain service. */
4345
DomainAPIGrpc.DomainAPIBlockingStub domainBlockingStub();
4446

src/main/java/com/uber/cadence/internal/sync/TestActivityEnvironmentInternal.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.uber.cadence.internal.metrics.NoopScope;
2727
import com.uber.cadence.internal.worker.ActivityTaskHandler;
2828
import com.uber.cadence.internal.worker.ActivityTaskHandler.Result;
29+
import com.uber.cadence.serviceclient.ClientOptions;
2930
import com.uber.cadence.serviceclient.IWorkflowService;
3031
import com.uber.cadence.testing.TestActivityEnvironment;
3132
import com.uber.cadence.testing.TestEnvironmentOptions;
@@ -323,6 +324,11 @@ private class WorkflowServiceWrapper implements IWorkflowService {
323324

324325
private final IWorkflowService impl;
325326

327+
@Override
328+
public ClientOptions getOptions() {
329+
return impl.getOptions();
330+
}
331+
326332
@Override
327333
public CompletableFuture<Boolean> isHealthy() {
328334
return impl.isHealthy();

src/main/java/com/uber/cadence/internal/sync/TestWorkflowEnvironmentInternal.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@
104104
import com.uber.cadence.client.WorkflowOptions;
105105
import com.uber.cadence.client.WorkflowStub;
106106
import com.uber.cadence.internal.testservice.TestWorkflowService;
107+
import com.uber.cadence.serviceclient.ClientOptions;
107108
import com.uber.cadence.serviceclient.IWorkflowService;
108109
import com.uber.cadence.testing.TestEnvironmentOptions;
109110
import com.uber.cadence.testing.TestWorkflowEnvironment;
@@ -278,6 +279,11 @@ public long currentTimeMillis() {
278279
return impl.currentTimeMillis();
279280
}
280281

282+
@Override
283+
public ClientOptions getOptions() {
284+
return impl.getOptions();
285+
}
286+
281287
@Override
282288
public RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(
283289
RecordActivityTaskHeartbeatRequest heartbeatRequest) throws TException {

src/main/java/com/uber/cadence/internal/testservice/TestWorkflowService.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
import com.uber.cadence.WorkflowIdReusePolicy;
106106
import com.uber.cadence.internal.testservice.TestWorkflowMutableStateImpl.QueryId;
107107
import com.uber.cadence.internal.testservice.TestWorkflowStore.WorkflowState;
108+
import com.uber.cadence.serviceclient.ClientOptions;
108109
import com.uber.cadence.serviceclient.IWorkflowService;
109110
import java.time.Duration;
110111
import java.util.HashMap;
@@ -147,6 +148,11 @@ public void close() {
147148
store.close();
148149
}
149150

151+
@Override
152+
public ClientOptions getOptions() {
153+
return ClientOptions.defaultInstance();
154+
}
155+
150156
private TestWorkflowMutableState getMutableState(ExecutionId executionId)
151157
throws InternalServiceError, EntityNotExistsError {
152158
return getMutableState(executionId, true);

src/main/java/com/uber/cadence/migration/MigrationIWorkflowService.java

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

2020
import com.google.common.base.Strings;
2121
import com.uber.cadence.*;
22+
import com.uber.cadence.serviceclient.ClientOptions;
2223
import com.uber.cadence.serviceclient.IWorkflowService;
2324
import com.uber.cadence.serviceclient.IWorkflowServiceBase;
2425
import java.util.Arrays;
@@ -46,6 +47,11 @@ public MigrationIWorkflowService(
4647
this.domainNew = domainNew;
4748
}
4849

50+
@Override
51+
public ClientOptions getOptions() {
52+
return serviceOld.getOptions();
53+
}
54+
4955
@Override
5056
public StartWorkflowExecutionResponse StartWorkflowExecution(
5157
StartWorkflowExecutionRequest startRequest) throws TException {

src/main/java/com/uber/cadence/serviceclient/IWorkflowService.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
public interface IWorkflowService extends Iface, AsyncIface {
3131
void close();
3232

33+
ClientOptions getOptions();
34+
3335
/**
3436
* StartWorkflowExecutionWithTimeout start workflow same as StartWorkflowExecution but with
3537
* timeout

src/main/java/com/uber/cadence/serviceclient/IWorkflowServiceBase.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,11 @@
2424

2525
public class IWorkflowServiceBase implements IWorkflowService {
2626

27+
@Override
28+
public ClientOptions getOptions() {
29+
throw new IllegalArgumentException("unimplemented");
30+
}
31+
2732
@Override
2833
public void RegisterDomain(RegisterDomainRequest registerRequest)
2934
throws BadRequestError, DomainAlreadyExistsError, ServiceBusyError,

src/main/java/com/uber/cadence/serviceclient/WorkflowServiceTChannel.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,6 +174,11 @@ private <T> ThriftRequest<T> buildThriftRequest(String apiName, T body) {
174174
return buildThriftRequest(apiName, body, null);
175175
}
176176

177+
@Override
178+
public ClientOptions getOptions() {
179+
return options;
180+
}
181+
177182
/**
178183
* Checks if we have a valid connection to the Cadence cluster, and potentially resets the peer
179184
* list

0 commit comments

Comments
 (0)