public SyncWorkflowWorker()

in src/main/java/com/uber/cadence/internal/sync/SyncWorkflowWorker.java [61:128]


  public SyncWorkflowWorker(
      IWorkflowService service,
      String domain,
      String taskList,
      Function<WorkflowInterceptor, WorkflowInterceptor> interceptorFactory,
      SingleWorkerOptions workflowOptions,
      SingleWorkerOptions localActivityOptions,
      SingleWorkerOptions locallyDispatchedActivityOptions,
      DeciderCache cache,
      String stickyTaskListName,
      Duration stickyDecisionScheduleToStartTimeout,
      ThreadPoolExecutor workflowThreadPool) {
    Objects.requireNonNull(workflowThreadPool);
    this.dataConverter = workflowOptions.getDataConverter();
    this.service = service;

    factory =
        new POJOWorkflowImplementationFactory(
            workflowOptions.getDataConverter(),
            workflowThreadPool,
            interceptorFactory,
            cache,
            workflowOptions.getContextPropagators());

    laTaskHandler =
        new POJOActivityTaskHandler(
            service, domain, localActivityOptions.getDataConverter(), heartbeatExecutor);
    laWorker = new LocalActivityWorker(domain, taskList, localActivityOptions, laTaskHandler);

    DecisionTaskHandler taskHandler =
        new ReplayDecisionTaskHandler(
            domain,
            factory,
            cache,
            workflowOptions,
            stickyTaskListName,
            stickyDecisionScheduleToStartTimeout,
            service,
            laWorker.getLocalActivityTaskPoller());

    Function<Task, Boolean> locallyDispatchedActivityTaskPoller = null;
    // do not dispatch locally if TaskListActivitiesPerSecond is set
    if (locallyDispatchedActivityOptions.getTaskListActivitiesPerSecond() == 0) {
      ldaTaskHandler =
          new POJOActivityTaskHandler(
              service,
              domain,
              locallyDispatchedActivityOptions.getDataConverter(),
              ldaHeartbeatExecutor);
      ldaWorker =
          new LocallyDispatchedActivityWorker(
              service, domain, taskList, locallyDispatchedActivityOptions, ldaTaskHandler);
      locallyDispatchedActivityTaskPoller =
          ((LocallyDispatchedActivityWorker) ldaWorker).getLocallyDispatchedActivityTaskPoller();
    } else {
      ldaWorker = new NoopSuspendableWorker();
    }

    workflowWorker =
        new WorkflowWorker(
            service,
            domain,
            taskList,
            workflowOptions,
            taskHandler,
            locallyDispatchedActivityTaskPoller,
            stickyTaskListName);
  }