Skip to content

Commit a6660ee

Browse files
authored
Add register workflow methods in shadower (#603)
* Add register workflow methods in shadower * update annotation
1 parent 6655ddc commit a6660ee

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

src/main/java/com/uber/cadence/testing/WorkflowShadower.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
*/
1616
package com.uber.cadence.testing;
1717

18+
import com.google.common.annotations.VisibleForTesting;
1819
import com.uber.cadence.internal.shadowing.ReplayWorkflowActivity;
1920
import com.uber.cadence.internal.shadowing.ReplayWorkflowActivityImpl;
2021
import com.uber.cadence.internal.shadowing.ReplayWorkflowActivityResult;
@@ -26,6 +27,8 @@
2627
import com.uber.cadence.serviceclient.IWorkflowService;
2728
import com.uber.cadence.shadower.Mode;
2829
import com.uber.cadence.worker.ShadowingOptions;
30+
import com.uber.cadence.worker.WorkflowImplementationOptions;
31+
import com.uber.cadence.workflow.Functions;
2932
import com.uber.m3.tally.NoopScope;
3033
import com.uber.m3.tally.Scope;
3134
import java.time.Duration;
@@ -53,6 +56,7 @@ public WorkflowShadower(
5356
new ReplayWorkflowActivityImpl(service, metricsScope, taskList));
5457
}
5558

59+
@VisibleForTesting
5660
public WorkflowShadower(
5761
ShadowingOptions options,
5862
ScanWorkflowActivity scanWorkflow,
@@ -114,6 +118,28 @@ public void run() throws Throwable {
114118
} while (nextPageToken != null && options.getShadowMode() == Mode.Normal);
115119
}
116120

121+
public void registerWorkflowImplementationTypes(Class<?>... workflowImplementationClasses) {
122+
replayWorkflow.registerWorkflowImplementationTypes(workflowImplementationClasses);
123+
}
124+
125+
public void registerWorkflowImplementationTypes(
126+
WorkflowImplementationOptions options, Class<?>... workflowImplementationClasses) {
127+
replayWorkflow.registerWorkflowImplementationTypesWithOptions(
128+
options, workflowImplementationClasses);
129+
}
130+
131+
public <R> void addWorkflowImplementationFactory(
132+
WorkflowImplementationOptions options,
133+
Class<R> workflowInterface,
134+
Functions.Func<R> factory) {
135+
replayWorkflow.addWorkflowImplementationFactoryWithOptions(options, workflowInterface, factory);
136+
}
137+
138+
public <R> void addWorkflowImplementationFactory(
139+
Class<R> workflowInterface, Functions.Func<R> factory) {
140+
replayWorkflow.addWorkflowImplementationFactory(workflowInterface, factory);
141+
}
142+
117143
private ShadowingOptions validateShadowingOptions(ShadowingOptions options) {
118144
Objects.requireNonNull(options);
119145

0 commit comments

Comments
 (0)