• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

uber / cadence-java-client / 2272

23 Apr 2024 07:08PM UTC coverage: 60.17% (+0.05%) from 60.125%
2272

push

buildkite

web-flow
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

8 of 14 new or added lines in 9 files covered. (57.14%)

8 existing lines in 2 files now uncovered.

11472 of 19066 relevant lines covered (60.17%)

0.6 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

33.46
/src/main/java/com/uber/cadence/internal/sync/TestActivityEnvironmentInternal.java
1
/*
2
 *  Copyright 2012-2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
 *
4
 *  Modifications copyright (C) 2017 Uber Technologies, Inc.
5
 *
6
 *  Licensed under the Apache License, Version 2.0 (the "License"). You may not
7
 *  use this file except in compliance with the License. A copy of the License is
8
 *  located at
9
 *
10
 *  http://aws.amazon.com/apache2.0
11
 *
12
 *  or in the "license" file accompanying this file. This file is distributed on
13
 *  an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
14
 *  express or implied. See the License for the specific language governing
15
 *  permissions and limitations under the License.
16
 */
17

18
package com.uber.cadence.internal.sync;
19

20
import com.google.common.base.Defaults;
21
import com.uber.cadence.*;
22
import com.uber.cadence.GetTaskListsByDomainRequest;
23
import com.uber.cadence.GetTaskListsByDomainResponse;
24
import com.uber.cadence.activity.ActivityOptions;
25
import com.uber.cadence.activity.LocalActivityOptions;
26
import com.uber.cadence.internal.metrics.NoopScope;
27
import com.uber.cadence.internal.worker.ActivityTaskHandler;
28
import com.uber.cadence.internal.worker.ActivityTaskHandler.Result;
29
import com.uber.cadence.serviceclient.ClientOptions;
30
import com.uber.cadence.serviceclient.IWorkflowService;
31
import com.uber.cadence.testing.TestActivityEnvironment;
32
import com.uber.cadence.testing.TestEnvironmentOptions;
33
import com.uber.cadence.workflow.*;
34
import com.uber.cadence.workflow.Functions.Func;
35
import com.uber.cadence.workflow.Functions.Func1;
36
import java.lang.reflect.InvocationHandler;
37
import java.lang.reflect.Proxy;
38
import java.lang.reflect.Type;
39
import java.nio.charset.StandardCharsets;
40
import java.time.Duration;
41
import java.util.Map;
42
import java.util.Objects;
43
import java.util.Optional;
44
import java.util.Random;
45
import java.util.UUID;
46
import java.util.concurrent.CancellationException;
47
import java.util.concurrent.CompletableFuture;
48
import java.util.concurrent.Executors;
49
import java.util.concurrent.ScheduledExecutorService;
50
import java.util.concurrent.atomic.AtomicInteger;
51
import java.util.function.BiPredicate;
52
import java.util.function.Consumer;
53
import java.util.function.Supplier;
54
import org.apache.thrift.TException;
55
import org.apache.thrift.async.AsyncMethodCallback;
56

57
public final class TestActivityEnvironmentInternal implements TestActivityEnvironment {
58

59
  private final POJOActivityTaskHandler activityTaskHandler;
60
  private final TestEnvironmentOptions testEnvironmentOptions;
61
  private final AtomicInteger idSequencer = new AtomicInteger();
1✔
62
  private ClassConsumerPair<Object> activityHeartbetListener;
63
  private static final ScheduledExecutorService heartbeatExecutor =
1✔
64
      Executors.newScheduledThreadPool(20);
1✔
65
  private IWorkflowService workflowService;
66

67
  public TestActivityEnvironmentInternal(TestEnvironmentOptions options) {
1✔
68
    if (options == null) {
1✔
69
      this.testEnvironmentOptions = new TestEnvironmentOptions.Builder().build();
×
70
    } else {
71
      this.testEnvironmentOptions = options;
1✔
72
    }
73
    activityTaskHandler =
1✔
74
        new POJOActivityTaskHandler(
75
            new WorkflowServiceWrapper(workflowService),
76
            testEnvironmentOptions.getWorkflowClientOptions().getDomain(),
1✔
77
            testEnvironmentOptions.getDataConverter(),
1✔
78
            heartbeatExecutor);
79
  }
1✔
80

81
  /**
82
   * Register activity implementation objects with a worker. Overwrites previously registered
83
   * objects. As activities are reentrant and stateless only one instance per activity type is
84
   * registered.
85
   *
86
   * <p>Implementations that share a worker must implement different interfaces as an activity type
87
   * is identified by the activity interface, not by the implementation.
88
   *
89
   * <p>
90
   */
91
  @Override
92
  public void registerActivitiesImplementations(Object... activityImplementations) {
93
    activityTaskHandler.setActivitiesImplementation(activityImplementations);
1✔
94
  }
1✔
95

96
  /**
97
   * Creates client stub to activities that implement given interface.
98
   *
99
   * @param activityInterface interface type implemented by activities
100
   */
101
  @Override
102
  public <T> T newActivityStub(Class<T> activityInterface) {
103
    ActivityOptions options =
1✔
104
        new ActivityOptions.Builder().setScheduleToCloseTimeout(Duration.ofDays(1)).build();
1✔
105
    InvocationHandler invocationHandler =
1✔
106
        ActivityInvocationHandler.newInstance(
1✔
107
            options, new TestActivityExecutor(workflowService, null));
108
    invocationHandler = new DeterministicRunnerWrapper(invocationHandler);
1✔
109
    return ActivityInvocationHandlerBase.newProxy(activityInterface, invocationHandler);
1✔
110
  }
111

112
  @Override
113
  public <T> void setActivityHeartbeatListener(Class<T> detailsClass, Consumer<T> listener) {
114
    setActivityHeartbeatListener(detailsClass, detailsClass, listener);
1✔
115
  }
1✔
116

117
  @Override
118
  @SuppressWarnings("unchecked")
119
  public <T> void setActivityHeartbeatListener(
120
      Class<T> detailsClass, Type detailsType, Consumer<T> listener) {
121
    activityHeartbetListener = new ClassConsumerPair(detailsClass, detailsType, listener);
1✔
122
  }
1✔
123

124
  @Override
125
  public void setWorkflowService(IWorkflowService workflowService) {
126
    IWorkflowService service = new WorkflowServiceWrapper(workflowService);
1✔
127
    this.workflowService = service;
1✔
128
    this.activityTaskHandler.setWorkflowService(service);
1✔
129
  }
1✔
130

131
  private class TestActivityExecutor extends WorkflowInterceptorBase {
132

133
    @SuppressWarnings("UnusedVariable")
134
    private final IWorkflowService workflowService;
135

136
    TestActivityExecutor(IWorkflowService workflowService, WorkflowInterceptorBase next) {
1✔
137
      super(next);
1✔
138
      this.workflowService = workflowService;
1✔
139
    }
1✔
140

141
    @Override
142
    public <T> Promise<T> executeActivity(
143
        String activityType,
144
        Class<T> resultClass,
145
        Type resultType,
146
        Object[] args,
147
        ActivityOptions options) {
148
      PollForActivityTaskResponse task = new PollForActivityTaskResponse();
1✔
149
      task.setScheduleToCloseTimeoutSeconds((int) options.getScheduleToCloseTimeout().getSeconds());
1✔
150
      task.setHeartbeatTimeoutSeconds((int) options.getHeartbeatTimeout().getSeconds());
1✔
151
      task.setStartToCloseTimeoutSeconds((int) options.getStartToCloseTimeout().getSeconds());
1✔
152
      task.setScheduledTimestamp(Duration.ofMillis(System.currentTimeMillis()).toNanos());
1✔
153
      task.setStartedTimestamp(Duration.ofMillis(System.currentTimeMillis()).toNanos());
1✔
154
      task.setInput(testEnvironmentOptions.getDataConverter().toData(args));
1✔
155
      task.setTaskToken("test-task-token".getBytes(StandardCharsets.UTF_8));
1✔
156
      task.setActivityId(String.valueOf(idSequencer.incrementAndGet()));
1✔
157
      task.setWorkflowExecution(
1✔
158
          new WorkflowExecution()
159
              .setWorkflowId("test-workflow-id")
1✔
160
              .setRunId(UUID.randomUUID().toString()));
1✔
161
      task.setWorkflowType(new WorkflowType().setName("test-workflow"));
1✔
162
      task.setActivityType(new ActivityType().setName(activityType));
1✔
163
      Result taskResult = activityTaskHandler.handle(task, NoopScope.getInstance(), false);
1✔
164
      return Workflow.newPromise(getReply(task, taskResult, resultClass, resultType));
1✔
165
    }
166

167
    @Override
168
    public <R> Promise<R> executeLocalActivity(
169
        String activityName,
170
        Class<R> resultClass,
171
        Type resultType,
172
        Object[] args,
173
        LocalActivityOptions options) {
174
      throw new UnsupportedOperationException("not implemented");
×
175
    }
176

177
    @Override
178
    public <R> WorkflowResult<R> executeChildWorkflow(
179
        String workflowType,
180
        Class<R> resultClass,
181
        Type resultType,
182
        Object[] args,
183
        ChildWorkflowOptions options) {
184
      throw new UnsupportedOperationException("not implemented");
×
185
    }
186

187
    @Override
188
    public Random newRandom() {
189
      throw new UnsupportedOperationException("not implemented");
×
190
    }
191

192
    @Override
193
    public Promise<Void> signalExternalWorkflow(
194
        String domain, WorkflowExecution execution, String signalName, Object[] args) {
195
      throw new UnsupportedOperationException("not implemented");
×
196
    }
197

198
    @Override
199
    public Promise<Void> signalExternalWorkflow(
200
        WorkflowExecution execution, String signalName, Object[] args) {
201
      throw new UnsupportedOperationException("not implemented");
×
202
    }
203

204
    @Override
205
    public Promise<Void> cancelWorkflow(WorkflowExecution execution) {
206
      throw new UnsupportedOperationException("not implemented");
×
207
    }
208

209
    @Override
210
    public void sleep(Duration duration) {
211
      throw new UnsupportedOperationException("not implemented");
×
212
    }
213

214
    @Override
215
    public boolean await(Duration timeout, String reason, Supplier<Boolean> unblockCondition) {
216
      throw new UnsupportedOperationException("not implemented");
×
217
    }
218

219
    @Override
220
    public void await(String reason, Supplier<Boolean> unblockCondition) {
221
      throw new UnsupportedOperationException("not implemented");
×
222
    }
223

224
    @Override
225
    public Promise<Void> newTimer(Duration duration) {
226
      throw new UnsupportedOperationException("not implemented");
×
227
    }
228

229
    @Override
230
    public <R> R sideEffect(Class<R> resultClass, Type resultType, Func<R> func) {
231
      throw new UnsupportedOperationException("not implemented");
×
232
    }
233

234
    @Override
235
    public <R> R mutableSideEffect(
236
        String id, Class<R> resultClass, Type resultType, BiPredicate<R, R> updated, Func<R> func) {
237
      throw new UnsupportedOperationException("not implemented");
×
238
    }
239

240
    @Override
241
    public int getVersion(String changeID, int minSupported, int maxSupported) {
242
      throw new UnsupportedOperationException("not implemented");
×
243
    }
244

245
    @Override
246
    public void continueAsNew(
247
        Optional<String> workflowType, Optional<ContinueAsNewOptions> options, Object[] args) {
248
      throw new UnsupportedOperationException("not implemented");
×
249
    }
250

251
    @Override
252
    public void registerQuery(String queryType, Type[] argTypes, Func1<Object[], Object> callback) {
253
      throw new UnsupportedOperationException("not implemented");
×
254
    }
255

256
    @Override
257
    public UUID randomUUID() {
258
      throw new UnsupportedOperationException("not implemented");
×
259
    }
260

261
    @Override
262
    public void upsertSearchAttributes(Map<String, Object> searchAttributes) {
263
      throw new UnsupportedOperationException("not implemented");
×
264
    }
265

266
    private <T> T getReply(
267
        PollForActivityTaskResponse task,
268
        ActivityTaskHandler.Result response,
269
        Class<T> resultClass,
270
        Type resultType) {
271
      RespondActivityTaskCompletedRequest taskCompleted = response.getTaskCompleted();
1✔
272
      if (taskCompleted != null) {
1✔
273
        return testEnvironmentOptions
1✔
274
            .getDataConverter()
1✔
275
            .fromData(taskCompleted.getResult(), resultClass, resultType);
1✔
276
      } else {
277
        RespondActivityTaskFailedRequest taskFailed =
1✔
278
            response.getTaskFailedResult().getTaskFailedRequest();
1✔
279
        if (taskFailed != null) {
1✔
280
          String causeClassName = taskFailed.getReason();
1✔
281
          Class<? extends Exception> causeClass;
282
          Exception cause;
283
          try {
284
            @SuppressWarnings("unchecked") // cc is just to have a place to put this annotation
285
            Class<? extends Exception> cc =
1✔
286
                (Class<? extends Exception>) Class.forName(causeClassName);
1✔
287
            causeClass = cc;
1✔
288
            cause =
1✔
289
                testEnvironmentOptions
1✔
290
                    .getDataConverter()
1✔
291
                    .fromData(taskFailed.getDetails(), causeClass, causeClass);
1✔
292
          } catch (Exception e) {
×
293
            cause = e;
×
294
          }
1✔
295
          throw new ActivityFailureException(
1✔
296
              0, task.getActivityType(), task.getActivityId(), cause);
1✔
297

298
        } else {
299
          RespondActivityTaskCanceledRequest taskCancelled = response.getTaskCancelled();
×
300
          if (taskCancelled != null) {
×
301
            throw new CancellationException(
×
302
                new String(taskCancelled.getDetails(), StandardCharsets.UTF_8));
×
303
          }
304
        }
305
      }
306
      return Defaults.defaultValue(resultClass);
×
307
    }
308
  }
309

310
  private static class ClassConsumerPair<T> {
311

312
    final Consumer<T> consumer;
313
    final Class<T> valueClass;
314
    final Type valueType;
315

316
    ClassConsumerPair(Class<T> valueClass, Type valueType, Consumer<T> consumer) {
1✔
317
      this.valueClass = Objects.requireNonNull(valueClass);
1✔
318
      this.valueType = Objects.requireNonNull(valueType);
1✔
319
      this.consumer = Objects.requireNonNull(consumer);
1✔
320
    }
1✔
321
  }
322

323
  private class WorkflowServiceWrapper implements IWorkflowService {
324

325
    private final IWorkflowService impl;
326

327
    @Override
328
    public ClientOptions getOptions() {
NEW
329
      return impl.getOptions();
×
330
    }
331

332
    @Override
333
    public CompletableFuture<Boolean> isHealthy() {
334
      return impl.isHealthy();
×
335
    }
336

337
    private WorkflowServiceWrapper(IWorkflowService impl) {
1✔
338
      if (impl == null) {
1✔
339
        // Create empty implementation that just ignores all requests.
340
        this.impl =
1✔
341
            (IWorkflowService)
342
                Proxy.newProxyInstance(
1✔
343
                    WorkflowServiceWrapper.class.getClassLoader(),
1✔
344
                    new Class<?>[] {IWorkflowService.class},
345
                    (proxy, method, args) -> {
346
                      // noop
347
                      return method.getReturnType().getDeclaredConstructor().newInstance();
1✔
348
                    });
349
      } else {
350
        this.impl = impl;
1✔
351
      }
352
    }
1✔
353

354
    @Override
355
    public RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeat(
356
        RecordActivityTaskHeartbeatRequest heartbeatRequest)
357
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
358
            WorkflowExecutionAlreadyCompletedError, TException {
359
      if (activityHeartbetListener != null) {
1✔
360
        Object details =
1✔
361
            testEnvironmentOptions
1✔
362
                .getDataConverter()
1✔
363
                .fromData(
1✔
364
                    heartbeatRequest.getDetails(),
1✔
365
                    activityHeartbetListener.valueClass,
1✔
366
                    activityHeartbetListener.valueType);
1✔
367
        activityHeartbetListener.consumer.accept(details);
1✔
368
      }
369
      // TODO: Cancellation
370
      return impl.RecordActivityTaskHeartbeat(heartbeatRequest);
1✔
371
    }
372

373
    @Override
374
    public RecordActivityTaskHeartbeatResponse RecordActivityTaskHeartbeatByID(
375
        RecordActivityTaskHeartbeatByIDRequest heartbeatRequest)
376
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
377
            WorkflowExecutionAlreadyCompletedError, DomainNotActiveError, LimitExceededError,
378
            ServiceBusyError, TException {
379
      return impl.RecordActivityTaskHeartbeatByID(heartbeatRequest);
×
380
    }
381

382
    @Override
383
    public void RespondActivityTaskCompleted(RespondActivityTaskCompletedRequest completeRequest)
384
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
385
            WorkflowExecutionAlreadyCompletedError, TException {
386
      impl.RespondActivityTaskCompleted(completeRequest);
×
387
    }
×
388

389
    @Override
390
    public void RespondActivityTaskCompletedByID(
391
        RespondActivityTaskCompletedByIDRequest completeRequest)
392
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
393
            WorkflowExecutionAlreadyCompletedError, TException {
394
      impl.RespondActivityTaskCompletedByID(completeRequest);
×
395
    }
×
396

397
    @Override
398
    public void RespondActivityTaskFailed(RespondActivityTaskFailedRequest failRequest)
399
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
400
            WorkflowExecutionAlreadyCompletedError, TException {
401
      impl.RespondActivityTaskFailed(failRequest);
×
402
    }
×
403

404
    @Override
405
    public void RespondActivityTaskFailedByID(RespondActivityTaskFailedByIDRequest failRequest)
406
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
407
            WorkflowExecutionAlreadyCompletedError, TException {
408
      impl.RespondActivityTaskFailedByID(failRequest);
×
409
    }
×
410

411
    @Override
412
    public void RespondActivityTaskCanceled(RespondActivityTaskCanceledRequest canceledRequest)
413
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
414
            WorkflowExecutionAlreadyCompletedError, TException {
415
      impl.RespondActivityTaskCanceled(canceledRequest);
×
416
    }
×
417

418
    @Override
419
    public void RespondActivityTaskCanceledByID(
420
        RespondActivityTaskCanceledByIDRequest canceledRequest)
421
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
422
            WorkflowExecutionAlreadyCompletedError, TException {
423
      impl.RespondActivityTaskCanceledByID(canceledRequest);
×
424
    }
×
425

426
    @Override
427
    public void RequestCancelWorkflowExecution(RequestCancelWorkflowExecutionRequest cancelRequest)
428
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
429
            CancellationAlreadyRequestedError, ServiceBusyError,
430
            WorkflowExecutionAlreadyCompletedError, TException {
431
      impl.RequestCancelWorkflowExecution(cancelRequest);
×
432
    }
×
433

434
    @Override
435
    public void SignalWorkflowExecution(SignalWorkflowExecutionRequest signalRequest)
436
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
437
            WorkflowExecutionAlreadyCompletedError, ServiceBusyError, TException {
438
      impl.SignalWorkflowExecution(signalRequest);
×
439
    }
×
440

441
    @Override
442
    public StartWorkflowExecutionResponse SignalWithStartWorkflowExecution(
443
        SignalWithStartWorkflowExecutionRequest signalWithStartRequest)
444
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
445
            DomainNotActiveError, LimitExceededError, WorkflowExecutionAlreadyStartedError,
446
            TException {
447
      return impl.SignalWithStartWorkflowExecution(signalWithStartRequest);
×
448
    }
449

450
    @Override
451
    public SignalWithStartWorkflowExecutionAsyncResponse SignalWithStartWorkflowExecutionAsync(
452
        SignalWithStartWorkflowExecutionAsyncRequest signalWithStartRequest)
453
        throws BadRequestError, WorkflowExecutionAlreadyStartedError, ServiceBusyError,
454
            DomainNotActiveError, LimitExceededError, EntityNotExistsError,
455
            ClientVersionNotSupportedError, TException {
456
      return impl.SignalWithStartWorkflowExecutionAsync(signalWithStartRequest);
×
457
    }
458

459
    @Override
460
    public ResetWorkflowExecutionResponse ResetWorkflowExecution(
461
        ResetWorkflowExecutionRequest resetRequest)
462
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
463
            DomainNotActiveError, LimitExceededError, ClientVersionNotSupportedError, TException {
464
      return impl.ResetWorkflowExecution(resetRequest);
×
465
    }
466

467
    @Override
468
    public void TerminateWorkflowExecution(TerminateWorkflowExecutionRequest terminateRequest)
469
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
470
            WorkflowExecutionAlreadyCompletedError, ServiceBusyError, TException {
471
      impl.TerminateWorkflowExecution(terminateRequest);
×
472
    }
×
473

474
    @Override
475
    public ListOpenWorkflowExecutionsResponse ListOpenWorkflowExecutions(
476
        ListOpenWorkflowExecutionsRequest listRequest)
477
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
478
            TException {
479
      return impl.ListOpenWorkflowExecutions(listRequest);
×
480
    }
481

482
    @Override
483
    public ListClosedWorkflowExecutionsResponse ListClosedWorkflowExecutions(
484
        ListClosedWorkflowExecutionsRequest listRequest)
485
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
486
            TException {
487
      return impl.ListClosedWorkflowExecutions(listRequest);
×
488
    }
489

490
    @Override
491
    public ListWorkflowExecutionsResponse ListWorkflowExecutions(
492
        ListWorkflowExecutionsRequest listRequest)
493
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
494
            ClientVersionNotSupportedError, TException {
495
      return impl.ListWorkflowExecutions(listRequest);
×
496
    }
497

498
    @Override
499
    public ListArchivedWorkflowExecutionsResponse ListArchivedWorkflowExecutions(
500
        ListArchivedWorkflowExecutionsRequest listRequest)
501
        throws BadRequestError, EntityNotExistsError, ServiceBusyError,
502
            ClientVersionNotSupportedError, TException {
503
      return impl.ListArchivedWorkflowExecutions(listRequest);
×
504
    }
505

506
    @Override
507
    public ListWorkflowExecutionsResponse ScanWorkflowExecutions(
508
        ListWorkflowExecutionsRequest listRequest)
509
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
510
            ClientVersionNotSupportedError, TException {
511
      return impl.ScanWorkflowExecutions(listRequest);
×
512
    }
513

514
    @Override
515
    public CountWorkflowExecutionsResponse CountWorkflowExecutions(
516
        CountWorkflowExecutionsRequest countRequest)
517
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
518
            ClientVersionNotSupportedError, TException {
519
      return impl.CountWorkflowExecutions(countRequest);
×
520
    }
521

522
    @Override
523
    public GetSearchAttributesResponse GetSearchAttributes()
524
        throws InternalServiceError, ServiceBusyError, ClientVersionNotSupportedError, TException {
525
      return impl.GetSearchAttributes();
×
526
    }
527

528
    @Override
529
    public void RespondQueryTaskCompleted(RespondQueryTaskCompletedRequest completeRequest)
530
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
531
            WorkflowExecutionAlreadyCompletedError, TException {
532
      impl.RespondQueryTaskCompleted(completeRequest);
×
533
    }
×
534

535
    @Override
536
    public ResetStickyTaskListResponse ResetStickyTaskList(ResetStickyTaskListRequest resetRequest)
537
        throws BadRequestError, InternalServiceError, EntityNotExistsError, LimitExceededError,
538
            ServiceBusyError, DomainNotActiveError, TException {
539
      return impl.ResetStickyTaskList(resetRequest);
×
540
    }
541

542
    @Override
543
    public QueryWorkflowResponse QueryWorkflow(QueryWorkflowRequest queryRequest)
544
        throws BadRequestError, InternalServiceError, EntityNotExistsError, QueryFailedError,
545
            TException {
546
      return impl.QueryWorkflow(queryRequest);
×
547
    }
548

549
    @Override
550
    public DescribeWorkflowExecutionResponse DescribeWorkflowExecution(
551
        DescribeWorkflowExecutionRequest describeRequest)
552
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
553
      return impl.DescribeWorkflowExecution(describeRequest);
×
554
    }
555

556
    @Override
557
    public DescribeTaskListResponse DescribeTaskList(DescribeTaskListRequest request)
558
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
559
      return impl.DescribeTaskList(request);
×
560
    }
561

562
    @Override
563
    public ClusterInfo GetClusterInfo() throws InternalServiceError, ServiceBusyError, TException {
564
      return impl.GetClusterInfo();
×
565
    }
566

567
    @Override
568
    public ListTaskListPartitionsResponse ListTaskListPartitions(
569
        ListTaskListPartitionsRequest request)
570
        throws BadRequestError, EntityNotExistsError, LimitExceededError, ServiceBusyError,
571
            TException {
572
      return impl.ListTaskListPartitions(request);
×
573
    }
574

575
    @Override
576
    public void RefreshWorkflowTasks(RefreshWorkflowTasksRequest request)
577
        throws BadRequestError, DomainNotActiveError, ServiceBusyError, EntityNotExistsError,
578
            TException {
579
      impl.RefreshWorkflowTasks(request);
×
580
    }
×
581

582
    @Override
583
    public void RegisterDomain(
584
        RegisterDomainRequest registerRequest, AsyncMethodCallback resultHandler)
585
        throws TException {
586
      impl.RegisterDomain(registerRequest, resultHandler);
×
587
    }
×
588

589
    @Override
590
    public void DescribeDomain(
591
        DescribeDomainRequest describeRequest, AsyncMethodCallback resultHandler)
592
        throws TException {
593
      impl.DescribeDomain(describeRequest, resultHandler);
×
594
    }
×
595

596
    @Override
597
    public void ListDomains(ListDomainsRequest listRequest, AsyncMethodCallback resultHandler)
598
        throws TException {
599
      impl.ListDomains(listRequest, resultHandler);
×
600
    }
×
601

602
    @Override
603
    public void UpdateDomain(UpdateDomainRequest updateRequest, AsyncMethodCallback resultHandler)
604
        throws TException {
605
      impl.UpdateDomain(updateRequest, resultHandler);
×
606
    }
×
607

608
    @Override
609
    public void DeprecateDomain(
610
        DeprecateDomainRequest deprecateRequest, AsyncMethodCallback resultHandler)
611
        throws TException {
612
      impl.DeprecateDomain(deprecateRequest, resultHandler);
×
613
    }
×
614

615
    @Override
616
    public void RestartWorkflowExecution(
617
        RestartWorkflowExecutionRequest restartRequest, AsyncMethodCallback resultHandler)
618
        throws TException {
619
      impl.RestartWorkflowExecution(restartRequest, resultHandler);
×
620
    }
×
621

622
    @Override
623
    public void GetTaskListsByDomain(
624
        GetTaskListsByDomainRequest request, AsyncMethodCallback resultHandler)
625
        throws org.apache.thrift.TException {
626
      impl.GetTaskListsByDomain(request, resultHandler);
×
627
    }
×
628

629
    @Override
630
    public void StartWorkflowExecution(
631
        StartWorkflowExecutionRequest startRequest, AsyncMethodCallback resultHandler)
632
        throws TException {
633
      impl.StartWorkflowExecution(startRequest, resultHandler);
×
634
    }
×
635

636
    @Override
637
    public void StartWorkflowExecutionAsync(
638
        StartWorkflowExecutionAsyncRequest startRequest, AsyncMethodCallback resultHandler)
639
        throws TException {
640
      impl.StartWorkflowExecutionAsync(startRequest, resultHandler);
×
641
    }
×
642

643
    @Override
644
    public void StartWorkflowExecutionWithTimeout(
645
        StartWorkflowExecutionRequest startRequest,
646
        AsyncMethodCallback resultHandler,
647
        Long timeoutInMillis)
648
        throws TException {
649
      impl.StartWorkflowExecutionWithTimeout(startRequest, resultHandler, timeoutInMillis);
×
650
    }
×
651

652
    @Override
653
    public void GetWorkflowExecutionHistory(
654
        GetWorkflowExecutionHistoryRequest getRequest, AsyncMethodCallback resultHandler)
655
        throws TException {
656
      impl.GetWorkflowExecutionHistory(getRequest, resultHandler);
×
657
    }
×
658

659
    @Override
660
    public void GetWorkflowExecutionHistoryWithTimeout(
661
        GetWorkflowExecutionHistoryRequest getRequest,
662
        AsyncMethodCallback resultHandler,
663
        Long timeoutInMillis)
664
        throws TException {
665
      impl.GetWorkflowExecutionHistoryWithTimeout(getRequest, resultHandler, timeoutInMillis);
×
666
    }
×
667

668
    @Override
669
    public void PollForDecisionTask(
670
        PollForDecisionTaskRequest pollRequest, AsyncMethodCallback resultHandler)
671
        throws TException {
672
      impl.PollForDecisionTask(pollRequest, resultHandler);
×
673
    }
×
674

675
    @Override
676
    public void RespondDecisionTaskCompleted(
677
        RespondDecisionTaskCompletedRequest completeRequest, AsyncMethodCallback resultHandler)
678
        throws TException {
679
      impl.RespondDecisionTaskCompleted(completeRequest, resultHandler);
×
680
    }
×
681

682
    @Override
683
    public void RespondDecisionTaskFailed(
684
        RespondDecisionTaskFailedRequest failedRequest, AsyncMethodCallback resultHandler)
685
        throws TException {
686
      impl.RespondDecisionTaskFailed(failedRequest, resultHandler);
×
687
    }
×
688

689
    @Override
690
    public void PollForActivityTask(
691
        PollForActivityTaskRequest pollRequest, AsyncMethodCallback resultHandler)
692
        throws TException {
693
      impl.PollForActivityTask(pollRequest, resultHandler);
×
694
    }
×
695

696
    @Override
697
    public void RecordActivityTaskHeartbeat(
698
        RecordActivityTaskHeartbeatRequest heartbeatRequest, AsyncMethodCallback resultHandler)
699
        throws TException {
700
      impl.RecordActivityTaskHeartbeat(heartbeatRequest, resultHandler);
×
701
    }
×
702

703
    @Override
704
    public void RecordActivityTaskHeartbeatByID(
705
        RecordActivityTaskHeartbeatByIDRequest heartbeatRequest, AsyncMethodCallback resultHandler)
706
        throws TException {
707
      impl.RecordActivityTaskHeartbeatByID(heartbeatRequest, resultHandler);
×
708
    }
×
709

710
    @Override
711
    public void RespondActivityTaskCompleted(
712
        RespondActivityTaskCompletedRequest completeRequest, AsyncMethodCallback resultHandler)
713
        throws TException {
714
      impl.RespondActivityTaskCompleted(completeRequest, resultHandler);
×
715
    }
×
716

717
    @Override
718
    public void RespondActivityTaskCompletedByID(
719
        RespondActivityTaskCompletedByIDRequest completeRequest, AsyncMethodCallback resultHandler)
720
        throws TException {
721
      impl.RespondActivityTaskCompletedByID(completeRequest, resultHandler);
×
722
    }
×
723

724
    @Override
725
    public void RespondActivityTaskFailed(
726
        RespondActivityTaskFailedRequest failRequest, AsyncMethodCallback resultHandler)
727
        throws TException {
728
      impl.RespondActivityTaskFailed(failRequest, resultHandler);
×
729
    }
×
730

731
    @Override
732
    public void RespondActivityTaskFailedByID(
733
        RespondActivityTaskFailedByIDRequest failRequest, AsyncMethodCallback resultHandler)
734
        throws TException {
735
      impl.RespondActivityTaskFailedByID(failRequest, resultHandler);
×
736
    }
×
737

738
    @Override
739
    public void RespondActivityTaskCanceled(
740
        RespondActivityTaskCanceledRequest canceledRequest, AsyncMethodCallback resultHandler)
741
        throws TException {
742
      impl.RespondActivityTaskCanceled(canceledRequest, resultHandler);
×
743
    }
×
744

745
    @Override
746
    public void RespondActivityTaskCanceledByID(
747
        RespondActivityTaskCanceledByIDRequest canceledRequest, AsyncMethodCallback resultHandler)
748
        throws TException {
749
      impl.RespondActivityTaskCanceledByID(canceledRequest, resultHandler);
×
750
    }
×
751

752
    @Override
753
    public void RequestCancelWorkflowExecution(
754
        RequestCancelWorkflowExecutionRequest cancelRequest, AsyncMethodCallback resultHandler)
755
        throws TException {
756
      impl.RequestCancelWorkflowExecution(cancelRequest, resultHandler);
×
757
    }
×
758

759
    @Override
760
    public void SignalWorkflowExecution(
761
        SignalWorkflowExecutionRequest signalRequest, AsyncMethodCallback resultHandler)
762
        throws TException {
763
      impl.SignalWorkflowExecution(signalRequest, resultHandler);
×
764
    }
×
765

766
    @Override
767
    public void SignalWorkflowExecutionWithTimeout(
768
        SignalWorkflowExecutionRequest signalRequest,
769
        AsyncMethodCallback resultHandler,
770
        Long timeoutInMillis)
771
        throws TException {
772
      impl.SignalWorkflowExecutionWithTimeout(signalRequest, resultHandler, timeoutInMillis);
×
773
    }
×
774

775
    @Override
776
    public void SignalWithStartWorkflowExecution(
777
        SignalWithStartWorkflowExecutionRequest signalWithStartRequest,
778
        AsyncMethodCallback resultHandler)
779
        throws TException {
780
      impl.SignalWithStartWorkflowExecution(signalWithStartRequest, resultHandler);
×
781
    }
×
782

783
    @Override
784
    public void SignalWithStartWorkflowExecutionAsync(
785
        SignalWithStartWorkflowExecutionAsyncRequest signalWithStartRequest,
786
        AsyncMethodCallback resultHandler)
787
        throws TException {
788
      impl.SignalWithStartWorkflowExecutionAsync(signalWithStartRequest, resultHandler);
×
789
    }
×
790

791
    @Override
792
    public void ResetWorkflowExecution(
793
        ResetWorkflowExecutionRequest resetRequest, AsyncMethodCallback resultHandler)
794
        throws TException {
795
      impl.ResetWorkflowExecution(resetRequest, resultHandler);
×
796
    }
×
797

798
    @Override
799
    public void TerminateWorkflowExecution(
800
        TerminateWorkflowExecutionRequest terminateRequest, AsyncMethodCallback resultHandler)
801
        throws TException {
802
      impl.TerminateWorkflowExecution(terminateRequest, resultHandler);
×
803
    }
×
804

805
    @Override
806
    public void ListOpenWorkflowExecutions(
807
        ListOpenWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
808
        throws TException {
809
      impl.ListOpenWorkflowExecutions(listRequest, resultHandler);
×
810
    }
×
811

812
    @Override
813
    public void ListClosedWorkflowExecutions(
814
        ListClosedWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
815
        throws TException {
816
      impl.ListClosedWorkflowExecutions(listRequest, resultHandler);
×
817
    }
×
818

819
    @Override
820
    public void ListWorkflowExecutions(
821
        ListWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
822
        throws TException {
823
      impl.ListWorkflowExecutions(listRequest, resultHandler);
×
824
    }
×
825

826
    @Override
827
    public void ListArchivedWorkflowExecutions(
828
        ListArchivedWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
829
        throws TException {
830
      impl.ListArchivedWorkflowExecutions(listRequest, resultHandler);
×
831
    }
×
832

833
    @Override
834
    public void ScanWorkflowExecutions(
835
        ListWorkflowExecutionsRequest listRequest, AsyncMethodCallback resultHandler)
836
        throws TException {
837
      impl.ScanWorkflowExecutions(listRequest, resultHandler);
×
838
    }
×
839

840
    @Override
841
    public void CountWorkflowExecutions(
842
        CountWorkflowExecutionsRequest countRequest, AsyncMethodCallback resultHandler)
843
        throws TException {
844
      impl.CountWorkflowExecutions(countRequest, resultHandler);
×
845
    }
×
846

847
    @Override
848
    public void GetSearchAttributes(AsyncMethodCallback resultHandler) throws TException {
849
      impl.GetSearchAttributes(resultHandler);
×
850
    }
×
851

852
    @Override
853
    public void RespondQueryTaskCompleted(
854
        RespondQueryTaskCompletedRequest completeRequest, AsyncMethodCallback resultHandler)
855
        throws TException {
856
      impl.RespondQueryTaskCompleted(completeRequest, resultHandler);
×
857
    }
×
858

859
    @Override
860
    public void ResetStickyTaskList(
861
        ResetStickyTaskListRequest resetRequest, AsyncMethodCallback resultHandler)
862
        throws TException {
863
      impl.ResetStickyTaskList(resetRequest, resultHandler);
×
864
    }
×
865

866
    @Override
867
    public void QueryWorkflow(QueryWorkflowRequest queryRequest, AsyncMethodCallback resultHandler)
868
        throws TException {
869
      impl.QueryWorkflow(queryRequest, resultHandler);
×
870
    }
×
871

872
    @Override
873
    public void DescribeWorkflowExecution(
874
        DescribeWorkflowExecutionRequest describeRequest, AsyncMethodCallback resultHandler)
875
        throws TException {
876
      impl.DescribeWorkflowExecution(describeRequest, resultHandler);
×
877
    }
×
878

879
    @Override
880
    public void DescribeTaskList(DescribeTaskListRequest request, AsyncMethodCallback resultHandler)
881
        throws TException {
882
      impl.DescribeTaskList(request, resultHandler);
×
883
    }
×
884

885
    @Override
886
    public void GetClusterInfo(AsyncMethodCallback resultHandler) throws TException {}
×
887

888
    @Override
889
    public void ListTaskListPartitions(
890
        ListTaskListPartitionsRequest request, AsyncMethodCallback resultHandler)
891
        throws TException {}
×
892

893
    @Override
894
    public void RefreshWorkflowTasks(
895
        RefreshWorkflowTasksRequest request, AsyncMethodCallback resultHandler) throws TException {}
×
896

897
    @Override
898
    public void RegisterDomain(RegisterDomainRequest registerRequest)
899
        throws BadRequestError, InternalServiceError, DomainAlreadyExistsError, TException {
900
      impl.RegisterDomain(registerRequest);
×
901
    }
×
902

903
    @Override
904
    public DescribeDomainResponse DescribeDomain(DescribeDomainRequest describeRequest)
905
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
906
      return impl.DescribeDomain(describeRequest);
×
907
    }
908

909
    @Override
910
    public ListDomainsResponse ListDomains(ListDomainsRequest listRequest)
911
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
912
            TException {
913
      return impl.ListDomains(listRequest);
×
914
    }
915

916
    @Override
917
    public UpdateDomainResponse UpdateDomain(UpdateDomainRequest updateRequest)
918
        throws BadRequestError, InternalServiceError, EntityNotExistsError, TException {
919
      return impl.UpdateDomain(updateRequest);
×
920
    }
921

922
    @Override
923
    public void DeprecateDomain(DeprecateDomainRequest deprecateRequest)
924
        throws BadRequestError, EntityNotExistsError, LimitExceededError, ServiceBusyError,
925
            ClientVersionNotSupportedError, TException {
926
      impl.DeprecateDomain(deprecateRequest);
×
927
    }
×
928

929
    @Override
930
    public RestartWorkflowExecutionResponse RestartWorkflowExecution(
931
        RestartWorkflowExecutionRequest restartRequest)
932
        throws BadRequestError, ServiceBusyError, DomainNotActiveError, LimitExceededError,
933
            EntityNotExistsError, ClientVersionNotSupportedError, TException {
934
      return impl.RestartWorkflowExecution(restartRequest);
×
935
    }
936

937
    @Override
938
    public GetTaskListsByDomainResponse GetTaskListsByDomain(GetTaskListsByDomainRequest request)
939
        throws BadRequestError, EntityNotExistsError, LimitExceededError, ServiceBusyError,
940
            ClientVersionNotSupportedError, TException {
941
      return impl.GetTaskListsByDomain(request);
×
942
    }
943

944
    @Override
945
    public StartWorkflowExecutionResponse StartWorkflowExecution(
946
        StartWorkflowExecutionRequest startRequest)
947
        throws BadRequestError, InternalServiceError, WorkflowExecutionAlreadyStartedError,
948
            ServiceBusyError, TException {
949
      return impl.StartWorkflowExecution(startRequest);
×
950
    }
951

952
    @Override
953
    public StartWorkflowExecutionAsyncResponse StartWorkflowExecutionAsync(
954
        StartWorkflowExecutionAsyncRequest startRequest)
955
        throws BadRequestError, WorkflowExecutionAlreadyStartedError, ServiceBusyError,
956
            DomainNotActiveError, LimitExceededError, EntityNotExistsError,
957
            ClientVersionNotSupportedError, TException {
958
      return impl.StartWorkflowExecutionAsync(startRequest);
×
959
    }
960

961
    @Override
962
    public GetWorkflowExecutionHistoryResponse GetWorkflowExecutionHistory(
963
        GetWorkflowExecutionHistoryRequest getRequest)
964
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
965
            TException {
966
      return impl.GetWorkflowExecutionHistory(getRequest);
×
967
    }
968

969
    @Override
970
    public GetWorkflowExecutionHistoryResponse GetWorkflowExecutionHistoryWithTimeout(
971
        GetWorkflowExecutionHistoryRequest getRequest, Long timeoutInMillis)
972
        throws BadRequestError, InternalServiceError, EntityNotExistsError, ServiceBusyError,
973
            TException {
974
      return impl.GetWorkflowExecutionHistoryWithTimeout(getRequest, timeoutInMillis);
×
975
    }
976

977
    @Override
978
    public PollForDecisionTaskResponse PollForDecisionTask(PollForDecisionTaskRequest pollRequest)
979
        throws BadRequestError, InternalServiceError, ServiceBusyError, TException {
980
      return impl.PollForDecisionTask(pollRequest);
×
981
    }
982

983
    @Override
984
    public RespondDecisionTaskCompletedResponse RespondDecisionTaskCompleted(
985
        RespondDecisionTaskCompletedRequest completeRequest)
986
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
987
            WorkflowExecutionAlreadyCompletedError, TException {
988
      return impl.RespondDecisionTaskCompleted(completeRequest);
×
989
    }
990

991
    @Override
992
    public void RespondDecisionTaskFailed(RespondDecisionTaskFailedRequest failedRequest)
993
        throws BadRequestError, InternalServiceError, EntityNotExistsError,
994
            WorkflowExecutionAlreadyCompletedError, TException {
995
      impl.RespondDecisionTaskFailed(failedRequest);
×
996
    }
×
997

998
    @Override
999
    public PollForActivityTaskResponse PollForActivityTask(PollForActivityTaskRequest pollRequest)
1000
        throws BadRequestError, InternalServiceError, ServiceBusyError, TException {
1001
      return impl.PollForActivityTask(pollRequest);
×
1002
    }
1003

1004
    @Override
1005
    public void close() {
1006
      impl.close();
×
1007
    }
×
1008
  }
1009
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc