diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowTaskOptions.java b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowTaskOptions.java index 6e1645268..a0c01f86d 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowTaskOptions.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowTaskOptions.java @@ -17,18 +17,48 @@ public class WorkflowTaskOptions { private final WorkflowTaskRetryPolicy retryPolicy; private final WorkflowTaskRetryHandler retryHandler; + private final String appId; public WorkflowTaskOptions(WorkflowTaskRetryPolicy retryPolicy, WorkflowTaskRetryHandler retryHandler) { - this.retryPolicy = retryPolicy; - this.retryHandler = retryHandler; - } - - public WorkflowTaskOptions(WorkflowTaskRetryPolicy retryPolicy) { - this(retryPolicy, null); + this(retryPolicy, retryHandler, null); } public WorkflowTaskOptions(WorkflowTaskRetryHandler retryHandler) { - this(null, retryHandler); + this(null, retryHandler, null); + } + + public WorkflowTaskOptions(WorkflowTaskRetryPolicy retryPolicy) { + this(retryPolicy, null, null); + } + + /** + * Constructor for WorkflowTaskOptions with app ID for cross-app calls. + * + * @param appId the ID of the app to call the activity in + */ + public WorkflowTaskOptions(String appId) { + this(null, null, appId); + } + + /** + * Constructor for WorkflowTaskOptions with retry policy, retry handler, and app ID. + * + * @param retryPolicy the retry policy + * @param retryHandler the retry handler + * @param appId the app ID for cross-app activity calls + */ + public WorkflowTaskOptions(WorkflowTaskRetryPolicy retryPolicy, WorkflowTaskRetryHandler retryHandler, String appId) { + this.retryPolicy = retryPolicy; + this.retryHandler = retryHandler; + this.appId = appId; + } + + public WorkflowTaskOptions(WorkflowTaskRetryPolicy retryPolicy, String appId) { + this(retryPolicy, null, appId); + } + + public WorkflowTaskOptions(WorkflowTaskRetryHandler retryHandler, String appId) { + this(null, retryHandler, appId); } public WorkflowTaskRetryPolicy getRetryPolicy() { @@ -39,4 +69,8 @@ public class WorkflowTaskOptions { return retryHandler; } + public String getAppId() { + return appId; + } + } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java index d11e1fe77..f11a5f1f0 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java @@ -245,7 +245,11 @@ public class DefaultWorkflowContext implements WorkflowContext { RetryPolicy retryPolicy = toRetryPolicy(options.getRetryPolicy()); RetryHandler retryHandler = toRetryHandler(options.getRetryHandler()); - return new TaskOptions(retryPolicy, retryHandler); + return TaskOptions.builder() + .retryPolicy(retryPolicy) + .retryHandler(retryHandler) + .appID(options.getAppId()) + .build(); } /**