diff --git a/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestActivity.java b/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestActivity.java index 67e6715f0..f3fc08d06 100644 --- a/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestActivity.java +++ b/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestActivity.java @@ -1,7 +1,7 @@ package io.dapr.spring.boot.autoconfigure.client.workflows; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.client.RestTemplate; diff --git a/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestWorkflow.java b/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestWorkflow.java index 97e94b1e7..3c695c586 100644 --- a/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestWorkflow.java +++ b/dapr-spring/dapr-spring-boot-autoconfigure/src/test/java/io/dapr/spring/boot/autoconfigure/client/workflows/TestWorkflow.java @@ -5,7 +5,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.client.RestTemplate; -public class TestWorkflow extends Workflow { +public class TestWorkflow implements Workflow { @Autowired private RestTemplate restTemplate; diff --git a/dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/DaprWorkflowsConfiguration.java b/dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/DaprWorkflowsConfiguration.java index 35753fb47..5547d72f4 100644 --- a/dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/DaprWorkflowsConfiguration.java +++ b/dapr-spring/dapr-spring-workflows/src/main/java/io/dapr/spring/workflows/config/DaprWorkflowsConfiguration.java @@ -1,13 +1,12 @@ package io.dapr.spring.workflows.config; import io.dapr.workflows.Workflow; -import io.dapr.workflows.runtime.WorkflowActivity; +import io.dapr.workflows.WorkflowActivity; import io.dapr.workflows.runtime.WorkflowRuntime; import io.dapr.workflows.runtime.WorkflowRuntimeBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeansException; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.context.annotation.Configuration; diff --git a/examples/src/main/java/io/dapr/examples/unittesting/DaprWorkflowExampleTest.java b/examples/src/main/java/io/dapr/examples/unittesting/DaprWorkflowExampleTest.java index f85f9e013..ef0e6702a 100644 --- a/examples/src/main/java/io/dapr/examples/unittesting/DaprWorkflowExampleTest.java +++ b/examples/src/main/java/io/dapr/examples/unittesting/DaprWorkflowExampleTest.java @@ -42,7 +42,7 @@ public class DaprWorkflowExampleTest { private static final String noTimeoutWorkflow = "DemoWorkflowNoTimeout"; private static final String workflowDefaultId = "demo-workflow-123"; - private class DemoWorkflow extends Workflow { + private class DemoWorkflow implements Workflow { @Override public WorkflowStub create() { diff --git a/examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainWorkflow.java index 8bf8b7bef..65f4c5f2b 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/chain/DemoChainWorkflow.java @@ -16,7 +16,7 @@ import io.dapr.workflows.Workflow; import io.dapr.workflows.WorkflowStub; -public class DemoChainWorkflow extends Workflow { +public class DemoChainWorkflow implements Workflow { @Override public WorkflowStub create() { return ctx -> { diff --git a/examples/src/main/java/io/dapr/examples/workflows/chain/ToUpperCaseActivity.java b/examples/src/main/java/io/dapr/examples/workflows/chain/ToUpperCaseActivity.java index f5313df4b..835e6ef04 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/chain/ToUpperCaseActivity.java +++ b/examples/src/main/java/io/dapr/examples/workflows/chain/ToUpperCaseActivity.java @@ -13,8 +13,8 @@ package io.dapr.examples.workflows.chain; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkflow.java index 0e67496ce..c9a9af455 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoChildWorkflow.java @@ -16,7 +16,7 @@ import io.dapr.workflows.Workflow; import io.dapr.workflows.WorkflowStub; -public class DemoChildWorkflow extends Workflow { +public class DemoChildWorkflow implements Workflow { @Override public WorkflowStub create() { return ctx -> { diff --git a/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoWorkflow.java index 74d71bf3b..6c0b8b226 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/childworkflow/DemoWorkflow.java @@ -16,7 +16,7 @@ import io.dapr.workflows.Workflow; import io.dapr.workflows.WorkflowStub; -public class DemoWorkflow extends Workflow { +public class DemoWorkflow implements Workflow { @Override public WorkflowStub create() { return ctx -> { diff --git a/examples/src/main/java/io/dapr/examples/workflows/childworkflow/ReverseActivity.java b/examples/src/main/java/io/dapr/examples/workflows/childworkflow/ReverseActivity.java index ff62fe0d1..544b29ea0 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/childworkflow/ReverseActivity.java +++ b/examples/src/main/java/io/dapr/examples/workflows/childworkflow/ReverseActivity.java @@ -13,8 +13,8 @@ package io.dapr.examples.workflows.childworkflow; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/src/main/java/io/dapr/examples/workflows/continueasnew/CleanUpActivity.java b/examples/src/main/java/io/dapr/examples/workflows/continueasnew/CleanUpActivity.java index d2eef0dd8..2a11fce4f 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/continueasnew/CleanUpActivity.java +++ b/examples/src/main/java/io/dapr/examples/workflows/continueasnew/CleanUpActivity.java @@ -13,8 +13,8 @@ package io.dapr.examples.workflows.continueasnew; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewWorkflow.java index b3176e4c3..1694eda9a 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/continueasnew/DemoContinueAsNewWorkflow.java @@ -18,7 +18,7 @@ import java.time.Duration; -public class DemoContinueAsNewWorkflow extends Workflow { +public class DemoContinueAsNewWorkflow implements Workflow { /* Compared with a CRON schedule, this periodic workflow example will never overlap. For example, a CRON schedule that executes a cleanup every hour will execute it at 1:00, 2:00, 3:00 etc. diff --git a/examples/src/main/java/io/dapr/examples/workflows/externalevent/ApproveActivity.java b/examples/src/main/java/io/dapr/examples/workflows/externalevent/ApproveActivity.java index 63b921857..d6ae1021c 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/externalevent/ApproveActivity.java +++ b/examples/src/main/java/io/dapr/examples/workflows/externalevent/ApproveActivity.java @@ -13,8 +13,8 @@ package io.dapr.examples.workflows.externalevent; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventWorkflow.java index 96684150b..3ef9c8942 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/externalevent/DemoExternalEventWorkflow.java @@ -16,7 +16,7 @@ import io.dapr.workflows.Workflow; import io.dapr.workflows.WorkflowStub; -public class DemoExternalEventWorkflow extends Workflow { +public class DemoExternalEventWorkflow implements Workflow { @Override public WorkflowStub create() { return ctx -> { diff --git a/examples/src/main/java/io/dapr/examples/workflows/externalevent/DenyActivity.java b/examples/src/main/java/io/dapr/examples/workflows/externalevent/DenyActivity.java index d50d7212a..391065245 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/externalevent/DenyActivity.java +++ b/examples/src/main/java/io/dapr/examples/workflows/externalevent/DenyActivity.java @@ -13,8 +13,8 @@ package io.dapr.examples.workflows.externalevent; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/src/main/java/io/dapr/examples/workflows/faninout/CountWordsActivity.java b/examples/src/main/java/io/dapr/examples/workflows/faninout/CountWordsActivity.java index e6e98dee5..654b4e884 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/faninout/CountWordsActivity.java +++ b/examples/src/main/java/io/dapr/examples/workflows/faninout/CountWordsActivity.java @@ -13,8 +13,8 @@ package io.dapr.examples.workflows.faninout; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutWorkflow.java index 62312f938..1760a53b3 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/faninout/DemoFanInOutWorkflow.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.stream.Collectors; -public class DemoFanInOutWorkflow extends Workflow { +public class DemoFanInOutWorkflow implements Workflow { @Override public WorkflowStub create() { return ctx -> { diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/FirstActivity.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/FirstActivity.java index d3bda7df6..e4727474c 100644 --- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/FirstActivity.java +++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/FirstActivity.java @@ -13,8 +13,8 @@ package io.dapr.it.testcontainers; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; public class FirstActivity implements WorkflowActivity { diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/SecondActivity.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/SecondActivity.java index e3a83c293..30e70b75b 100644 --- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/SecondActivity.java +++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/SecondActivity.java @@ -13,8 +13,8 @@ package io.dapr.it.testcontainers; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; public class SecondActivity implements WorkflowActivity { diff --git a/sdk-tests/src/test/java/io/dapr/it/testcontainers/TestWorkflow.java b/sdk-tests/src/test/java/io/dapr/it/testcontainers/TestWorkflow.java index 1011c7b6a..e3b03543e 100644 --- a/sdk-tests/src/test/java/io/dapr/it/testcontainers/TestWorkflow.java +++ b/sdk-tests/src/test/java/io/dapr/it/testcontainers/TestWorkflow.java @@ -19,7 +19,7 @@ import java.time.Duration; -public class TestWorkflow extends Workflow { +public class TestWorkflow implements Workflow { @Override public WorkflowStub create() { diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/Workflow.java b/sdk-workflows/src/main/java/io/dapr/workflows/Workflow.java index 94bb4c828..0b1a85f02 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/Workflow.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/Workflow.java @@ -21,16 +21,13 @@ /** * Common interface for workflow implementations. */ -public abstract class Workflow { - public Workflow() { - } - +public interface Workflow { /** * Executes the workflow logic. * * @return A WorkflowStub. */ - public abstract WorkflowStub create(); + WorkflowStub create(); /** * Executes the workflow logic. @@ -39,7 +36,7 @@ public Workflow() { * getting information about the current * workflow instance. */ - public void run(WorkflowContext ctx) { + default void run(WorkflowContext ctx) { WorkflowStub stub = this.create(); if (!this.isSagaEnabled()) { @@ -68,7 +65,7 @@ public void run(WorkflowContext ctx) { } } - public boolean isSagaEnabled() { + default boolean isSagaEnabled() { return this.getSagaOption() != null; } @@ -77,7 +74,7 @@ public boolean isSagaEnabled() { * * @return saga configuration */ - public SagaOption getSagaOption() { + default SagaOption getSagaOption() { // by default, saga is disabled return null; } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivity.java b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowActivity.java similarity index 98% rename from sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivity.java rename to sdk-workflows/src/main/java/io/dapr/workflows/WorkflowActivity.java index bcaab62d8..5f8c45292 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivity.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowActivity.java @@ -11,7 +11,7 @@ limitations under the License. */ -package io.dapr.workflows.runtime; +package io.dapr.workflows; /** * Common interface for task activity implementations. diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowActivityContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowActivityContext.java new file mode 100644 index 000000000..114c8b58e --- /dev/null +++ b/sdk-workflows/src/main/java/io/dapr/workflows/WorkflowActivityContext.java @@ -0,0 +1,20 @@ +/* + * Copyright 2023 The Dapr Authors + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * http://www.apache.org/licenses/LICENSE-2.0 + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and +limitations under the License. +*/ + +package io.dapr.workflows; + +public interface WorkflowActivityContext { + String getName(); + + T getInput(Class targetType); +} diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java similarity index 86% rename from sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityContext.java rename to sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java index 1277501ee..4a16d45f4 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java @@ -14,11 +14,12 @@ package io.dapr.workflows.runtime; import com.microsoft.durabletask.TaskActivityContext; +import io.dapr.workflows.WorkflowActivityContext; /** * Wrapper for Durable Task Framework {@link TaskActivityContext}. */ -public class WorkflowActivityContext implements TaskActivityContext { +class DefaultWorkflowActivityContext implements WorkflowActivityContext { private final TaskActivityContext innerContext; /** @@ -27,7 +28,7 @@ public class WorkflowActivityContext implements TaskActivityContext { * @param context TaskActivityContext * @throws IllegalArgumentException if context is null */ - public WorkflowActivityContext(TaskActivityContext context) throws IllegalArgumentException { + public DefaultWorkflowActivityContext(TaskActivityContext context) throws IllegalArgumentException { if (context == null) { throw new IllegalArgumentException("Context cannot be null"); } @@ -39,6 +40,7 @@ public WorkflowActivityContext(TaskActivityContext context) throws IllegalArgume * * @return the name of the current activity */ + @Override public String getName() { return this.innerContext.getName(); } @@ -50,6 +52,7 @@ public String getName() { * @param targetType targetType of the input * @return the input of the current activity */ + @Override public T getInput(Class targetType) { return this.innerContext.getInput(targetType); } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/DaprWorkflowContextImpl.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java similarity index 90% rename from sdk-workflows/src/main/java/io/dapr/workflows/DaprWorkflowContextImpl.java rename to sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java index 3353e385b..fea7ea396 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/DaprWorkflowContextImpl.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowContext.java @@ -11,14 +11,15 @@ limitations under the License. */ -package io.dapr.workflows; +package io.dapr.workflows.runtime; import com.microsoft.durabletask.CompositeTaskFailedException; import com.microsoft.durabletask.Task; import com.microsoft.durabletask.TaskCanceledException; import com.microsoft.durabletask.TaskOptions; import com.microsoft.durabletask.TaskOrchestrationContext; -import io.dapr.workflows.saga.DaprSagaContextImpl; +import io.dapr.workflows.WorkflowContext; +import io.dapr.workflows.runtime.saga.DefaultSagaContext; import io.dapr.workflows.saga.Saga; import io.dapr.workflows.saga.SagaContext; import org.slf4j.Logger; @@ -32,7 +33,7 @@ import java.util.List; import java.util.UUID; -public class DaprWorkflowContextImpl implements WorkflowContext { +public class DefaultWorkflowContext implements WorkflowContext { private final TaskOrchestrationContext innerContext; private final Logger logger; private final Saga saga; @@ -43,7 +44,7 @@ public class DaprWorkflowContextImpl implements WorkflowContext { * @param context TaskOrchestrationContext * @throws IllegalArgumentException if context is null */ - public DaprWorkflowContextImpl(TaskOrchestrationContext context) throws IllegalArgumentException { + public DefaultWorkflowContext(TaskOrchestrationContext context) throws IllegalArgumentException { this(context, LoggerFactory.getLogger(WorkflowContext.class)); } @@ -54,11 +55,11 @@ public DaprWorkflowContextImpl(TaskOrchestrationContext context) throws IllegalA * @param logger Logger * @throws IllegalArgumentException if context or logger is null */ - public DaprWorkflowContextImpl(TaskOrchestrationContext context, Logger logger) throws IllegalArgumentException { + public DefaultWorkflowContext(TaskOrchestrationContext context, Logger logger) throws IllegalArgumentException { this(context, logger, null); } - public DaprWorkflowContextImpl(TaskOrchestrationContext context, Saga saga) throws IllegalArgumentException { + public DefaultWorkflowContext(TaskOrchestrationContext context, Saga saga) throws IllegalArgumentException { this(context, LoggerFactory.getLogger(WorkflowContext.class), saga); } @@ -70,7 +71,7 @@ public DaprWorkflowContextImpl(TaskOrchestrationContext context, Saga saga) thro * @param saga saga object, if null, saga is disabled * @throws IllegalArgumentException if context or logger is null */ - public DaprWorkflowContextImpl(TaskOrchestrationContext context, Logger logger, Saga saga) + public DefaultWorkflowContext(TaskOrchestrationContext context, Logger logger, Saga saga) throws IllegalArgumentException { if (context == null) { throw new IllegalArgumentException("Context cannot be null"); @@ -248,6 +249,6 @@ public SagaContext getSagaContext() { throw new UnsupportedOperationException("Saga is not enabled"); } - return new DaprSagaContextImpl(this.saga, this); + return new DefaultSagaContext(this.saga, this); } } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/ActivityWrapper.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityWrapper.java similarity index 85% rename from sdk-workflows/src/main/java/io/dapr/workflows/runtime/ActivityWrapper.java rename to sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityWrapper.java index 8b02abf69..18f4eb55d 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/ActivityWrapper.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityWrapper.java @@ -15,6 +15,7 @@ import com.microsoft.durabletask.TaskActivity; import com.microsoft.durabletask.TaskActivityFactory; +import io.dapr.workflows.WorkflowActivity; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; @@ -22,16 +23,16 @@ /** * Wrapper for Durable Task Framework task activity factory. */ -public class ActivityWrapper implements TaskActivityFactory { +public class WorkflowActivityWrapper implements TaskActivityFactory { private final Constructor activityConstructor; private final String name; /** - * Constructor for ActivityWrapper. + * Constructor for WorkflowActivityWrapper. * * @param clazz Class of the activity to wrap. */ - public ActivityWrapper(Class clazz) { + public WorkflowActivityWrapper(Class clazz) { this.name = clazz.getCanonicalName(); try { this.activityConstructor = clazz.getDeclaredConstructor(); @@ -62,7 +63,7 @@ public TaskActivity create() { ); } - result = activity.run(new WorkflowActivityContext(ctx)); + result = activity.run(new DefaultWorkflowActivityContext(ctx)); return result; }; } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilder.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilder.java index 82c5e3135..86d0cf1e0 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilder.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilder.java @@ -17,6 +17,7 @@ import io.dapr.config.Properties; import io.dapr.utils.NetworkUtils; import io.dapr.workflows.Workflow; +import io.dapr.workflows.WorkflowActivity; import io.dapr.workflows.internal.ApiTokenClientInterceptor; import io.grpc.ClientInterceptor; import io.grpc.ManagedChannel; @@ -91,7 +92,7 @@ public WorkflowRuntime build() { * @return the WorkflowRuntimeBuilder */ public WorkflowRuntimeBuilder registerWorkflow(Class clazz) { - this.builder.addOrchestration(new OrchestratorWrapper<>(clazz)); + this.builder.addOrchestration(new WorkflowWrapper<>(clazz)); this.workflowSet.add(clazz.getCanonicalName()); this.workflows.add(clazz.getSimpleName()); @@ -108,7 +109,7 @@ public WorkflowRuntimeBuilder registerWorkflow(Class cla * @return the WorkflowRuntimeBuilder */ public WorkflowRuntimeBuilder registerActivity(Class clazz) { - this.builder.addActivity(new ActivityWrapper<>(clazz)); + this.builder.addActivity(new WorkflowActivityWrapper<>(clazz)); this.activitySet.add(clazz.getCanonicalName()); this.activities.add(clazz.getSimpleName()); diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/OrchestratorWrapper.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowWrapper.java similarity index 86% rename from sdk-workflows/src/main/java/io/dapr/workflows/runtime/OrchestratorWrapper.java rename to sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowWrapper.java index d104c9c3e..91f1dd8bc 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/OrchestratorWrapper.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowWrapper.java @@ -15,7 +15,6 @@ import com.microsoft.durabletask.TaskOrchestration; import com.microsoft.durabletask.TaskOrchestrationFactory; -import io.dapr.workflows.DaprWorkflowContextImpl; import io.dapr.workflows.Workflow; import io.dapr.workflows.saga.Saga; @@ -25,11 +24,11 @@ /** * Wrapper for Durable Task Framework orchestration factory. */ -class OrchestratorWrapper implements TaskOrchestrationFactory { +class WorkflowWrapper implements TaskOrchestrationFactory { private final Constructor workflowConstructor; private final String name; - public OrchestratorWrapper(Class clazz) { + public WorkflowWrapper(Class clazz) { this.name = clazz.getCanonicalName(); try { this.workflowConstructor = clazz.getDeclaredConstructor(); @@ -59,9 +58,9 @@ public TaskOrchestration create() { if (workflow.getSagaOption() != null) { Saga saga = new Saga(workflow.getSagaOption()); - workflow.run(new DaprWorkflowContextImpl(ctx, saga)); + workflow.run(new DefaultWorkflowContext(ctx, saga)); } else { - workflow.run(new DaprWorkflowContextImpl(ctx)); + workflow.run(new DefaultWorkflowContext(ctx)); } }; diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/saga/DaprSagaContextImpl.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/saga/DefaultSagaContext.java similarity index 85% rename from sdk-workflows/src/main/java/io/dapr/workflows/saga/DaprSagaContextImpl.java rename to sdk-workflows/src/main/java/io/dapr/workflows/runtime/saga/DefaultSagaContext.java index 5ede2af7f..78d72b73d 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/saga/DaprSagaContextImpl.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/saga/DefaultSagaContext.java @@ -11,14 +11,16 @@ limitations under the License. */ -package io.dapr.workflows.saga; +package io.dapr.workflows.runtime.saga; import io.dapr.workflows.WorkflowContext; +import io.dapr.workflows.saga.Saga; +import io.dapr.workflows.saga.SagaContext; /** * Dapr Saga Context implementation. */ -public class DaprSagaContextImpl implements SagaContext { +public class DefaultSagaContext implements SagaContext { private final Saga saga; private final WorkflowContext workflowContext; @@ -30,7 +32,7 @@ public class DaprSagaContextImpl implements SagaContext { * @param workflowContext Workflow context. * @throws IllegalArgumentException if saga or workflowContext is null. */ - public DaprSagaContextImpl(Saga saga, WorkflowContext workflowContext) { + public DefaultSagaContext(Saga saga, WorkflowContext workflowContext) { if (saga == null) { throw new IllegalArgumentException("Saga should not be null"); } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/saga/CompensatationInformation.java b/sdk-workflows/src/main/java/io/dapr/workflows/saga/CompensationInformation.java similarity index 59% rename from sdk-workflows/src/main/java/io/dapr/workflows/saga/CompensatationInformation.java rename to sdk-workflows/src/main/java/io/dapr/workflows/saga/CompensationInformation.java index cf0fe202c..3e0cb7d41 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/saga/CompensatationInformation.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/saga/CompensationInformation.java @@ -18,24 +18,24 @@ /** * Information for a compensation activity. */ -class CompensatationInformation { - private final String compensatationActivityClassName; - private final Object compensatationActivityInput; +class CompensationInformation { + private final String compensationActivityClassName; + private final Object compensationActivityInput; private final TaskOptions taskOptions; /** * Constructor for a compensation information. * - * @param compensatationActivityClassName Class name of the activity to do - * compensatation. - * @param compensatationActivityInput Input of the activity to do - * compensatation. + * @param compensationActivityClassName Class name of the activity to do + * compensation. + * @param compensationActivityInput Input of the activity to do + * compensation. * @param taskOptions task options to set retry strategy */ - public CompensatationInformation(String compensatationActivityClassName, - Object compensatationActivityInput, TaskOptions taskOptions) { - this.compensatationActivityClassName = compensatationActivityClassName; - this.compensatationActivityInput = compensatationActivityInput; + public CompensationInformation(String compensationActivityClassName, + Object compensationActivityInput, TaskOptions taskOptions) { + this.compensationActivityClassName = compensationActivityClassName; + this.compensationActivityInput = compensationActivityInput; this.taskOptions = taskOptions; } @@ -44,8 +44,8 @@ public CompensatationInformation(String compensatationActivityClassName, * * @return the class name of the activity. */ - public String getCompensatationActivityClassName() { - return compensatationActivityClassName; + public String getCompensationActivityClassName() { + return compensationActivityClassName; } /** @@ -53,8 +53,8 @@ public String getCompensatationActivityClassName() { * * @return the input of the activity. */ - public Object getCompensatationActivityInput() { - return compensatationActivityInput; + public Object getCompensationActivityInput() { + return compensationActivityInput; } /** @@ -65,4 +65,4 @@ public Object getCompensatationActivityInput() { public TaskOptions getTaskOptions() { return taskOptions; } -} \ No newline at end of file +} diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/saga/Saga.java b/sdk-workflows/src/main/java/io/dapr/workflows/saga/Saga.java index f2a151b9e..56fc08f2d 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/saga/Saga.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/saga/Saga.java @@ -24,7 +24,7 @@ public final class Saga { private final SagaOption option; - private final List compensationActivities = new ArrayList<>(); + private final List compensationActivities = new ArrayList<>(); /** * Build up a Saga with its options. @@ -59,7 +59,7 @@ public void registerCompensation(String activityClassName, Object activityInput, if (activityClassName == null || activityClassName.isEmpty()) { throw new IllegalArgumentException("activityClassName is required and should not be null or empty."); } - this.compensationActivities.add(new CompensatationInformation(activityClassName, activityInput, taskOptions)); + this.compensationActivities.add(new CompensationInformation(activityClassName, activityInput, taskOptions)); } /** @@ -69,7 +69,7 @@ public void registerCompensation(String activityClassName, Object activityInput, */ public void compensate(WorkflowContext ctx) { // Check if parallel compensation is enabled - // Specical case: when parallel compensation is enabled and there is only one + // Special case: when parallel compensation is enabled and there is only one // compensation, we still // compensate sequentially. if (option.isParallelCompensation() && compensationActivities.size() > 1) { @@ -81,7 +81,7 @@ public void compensate(WorkflowContext ctx) { private void compensateInParallel(WorkflowContext ctx) { List> tasks = new ArrayList<>(compensationActivities.size()); - for (CompensatationInformation compensationActivity : compensationActivities) { + for (CompensationInformation compensationActivity : compensationActivities) { Task task = executeCompensateActivity(ctx, compensationActivity); tasks.add(task); } @@ -96,7 +96,7 @@ private void compensateInParallel(WorkflowContext ctx) { private void compensateSequentially(WorkflowContext ctx) { SagaCompensationException sagaException = null; for (int i = compensationActivities.size() - 1; i >= 0; i--) { - String activityClassName = compensationActivities.get(i).getCompensatationActivityClassName(); + String activityClassName = compensationActivities.get(i).getCompensationActivityClassName(); try { executeCompensateActivity(ctx, compensationActivities.get(i)).await(); } catch (OrchestratorBlockedException | ContinueAsNewInterruption e) { @@ -104,8 +104,7 @@ private void compensateSequentially(WorkflowContext ctx) { } catch (Exception e) { if (sagaException == null) { sagaException = new SagaCompensationException( - "Exception in saga compensatation: activity=" + activityClassName, e); - ; + "Exception in saga compensation: activity=" + activityClassName, e); } else { sagaException.addSuppressed(e); } @@ -121,10 +120,10 @@ private void compensateSequentially(WorkflowContext ctx) { } } - private Task executeCompensateActivity(WorkflowContext ctx, CompensatationInformation info) + private Task executeCompensateActivity(WorkflowContext ctx, CompensationInformation info) throws SagaCompensationException { - String activityClassName = info.getCompensatationActivityClassName(); - return ctx.callActivity(activityClassName, info.getCompensatationActivityInput(), + String activityClassName = info.getCompensationActivityClassName(); + return ctx.callActivity(activityClassName, info.getCompensationActivityInput(), info.getTaskOptions()); } } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/saga/SagaOption.java b/sdk-workflows/src/main/java/io/dapr/workflows/saga/SagaOption.java index b13b2af77..f3c082f58 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/saga/SagaOption.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/saga/SagaOption.java @@ -92,8 +92,8 @@ public Builder setContinueWithError(boolean continueWithError) { } /** - * Build Saga optiion. - * @return Saga optiion + * Build Saga option. + * @return Saga option */ public SagaOption build() { return new SagaOption(this.parallelCompensation, this.maxParallelThread, this.continueWithError); diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/DaprWorkflowContextImplTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java similarity index 93% rename from sdk-workflows/src/test/java/io/dapr/workflows/DaprWorkflowContextImplTest.java rename to sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java index 34a6a5d6c..abbbae491 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/DaprWorkflowContextImplTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java @@ -20,6 +20,7 @@ import com.microsoft.durabletask.TaskOptions; import com.microsoft.durabletask.TaskOrchestrationContext; +import io.dapr.workflows.runtime.DefaultWorkflowContext; import io.dapr.workflows.saga.Saga; import io.dapr.workflows.saga.SagaContext; @@ -43,15 +44,15 @@ import static org.mockito.Mockito.when; import static org.junit.jupiter.api.Assertions.assertThrows; -public class DaprWorkflowContextImplTest { - private DaprWorkflowContextImpl context; +public class DefaultWorkflowContextTest { + private DefaultWorkflowContext context; private TaskOrchestrationContext mockInnerContext; private WorkflowContext testWorkflowContext; @BeforeEach public void setUp() { mockInnerContext = mock(TaskOrchestrationContext.class); - context = new DaprWorkflowContextImpl(mockInnerContext); + context = new DefaultWorkflowContext(mockInnerContext); testWorkflowContext = new WorkflowContext() { @Override public Logger getLogger() { @@ -190,13 +191,13 @@ public void callActivityTest() { @Test public void DaprWorkflowContextWithEmptyInnerContext() { assertThrows(IllegalArgumentException.class, () -> { - context = new DaprWorkflowContextImpl(mockInnerContext, (Logger)null); + context = new DefaultWorkflowContext(mockInnerContext, (Logger)null); }); } @Test public void DaprWorkflowContextWithEmptyLogger() { assertThrows(IllegalArgumentException.class, () -> { - context = new DaprWorkflowContextImpl(null, (Logger)null); + context = new DefaultWorkflowContext(null, (Logger)null); }); } @@ -216,7 +217,7 @@ public void getIsReplayingTest() { public void getLoggerReplayingTest() { Logger mockLogger = mock(Logger.class); when(context.isReplaying()).thenReturn(true); - DaprWorkflowContextImpl testContext = new DaprWorkflowContextImpl(mockInnerContext, mockLogger); + DefaultWorkflowContext testContext = new DefaultWorkflowContext(mockInnerContext, mockLogger); String expectedArg = "test print"; testContext.getLogger().info(expectedArg); @@ -228,7 +229,7 @@ public void getLoggerReplayingTest() { public void getLoggerFirstTimeTest() { Logger mockLogger = mock(Logger.class); when(context.isReplaying()).thenReturn(false); - DaprWorkflowContextImpl testContext = new DaprWorkflowContextImpl(mockInnerContext, mockLogger); + DefaultWorkflowContext testContext = new DefaultWorkflowContext(mockInnerContext, mockLogger); String expectedArg = "test print"; testContext.getLogger().info(expectedArg); @@ -322,7 +323,7 @@ public void newUuidTestNoImplementationExceptionTest() { @Test public void getSagaContextTest_sagaEnabled() { Saga saga = mock(Saga.class); - WorkflowContext context = new DaprWorkflowContextImpl(mockInnerContext, saga); + WorkflowContext context = new DefaultWorkflowContext(mockInnerContext, saga); SagaContext sagaContext = context.getSagaContext(); assertNotNull("SagaContext should not be null", sagaContext); @@ -330,7 +331,7 @@ public void getSagaContextTest_sagaEnabled() { @Test public void getSagaContextTest_sagaDisabled() { - WorkflowContext context = new DaprWorkflowContextImpl(mockInnerContext); + WorkflowContext context = new DefaultWorkflowContext(mockInnerContext); assertThrows(UnsupportedOperationException.class, () -> { context.getSagaContext(); }); diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/WorkflowTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/WorkflowTest.java index 528af3191..439827d3c 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/WorkflowTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/WorkflowTest.java @@ -162,7 +162,7 @@ public void testWorkflow_WithSaga_compensateFaile() { verify(sagaContext, times(1)).compensate(); } - public static class WorkflowWithoutSaga extends Workflow { + public static class WorkflowWithoutSaga implements Workflow { private final WorkflowStub stub; public WorkflowWithoutSaga(WorkflowStub stub) { @@ -175,7 +175,7 @@ public WorkflowStub create() { } } - public static class WorkflowWithSaga extends Workflow { + public static class WorkflowWithSaga implements Workflow { private final WorkflowStub stub; public WorkflowWithSaga(WorkflowStub stub) { diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/client/DaprWorkflowClientTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/client/DaprWorkflowClientTest.java index 18054cced..cf366e6b8 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/client/DaprWorkflowClientTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/client/DaprWorkflowClientTest.java @@ -44,7 +44,7 @@ public class DaprWorkflowClientTest { private DurableTaskClient mockInnerClient; private ManagedChannel mockGrpcChannel; - public static class TestWorkflow extends Workflow { + public static class TestWorkflow implements Workflow { @Override public WorkflowStub create() { return WorkflowContext::getInstanceId; diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/ActivityWrapperTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowActivityWrapperTest.java similarity index 70% rename from sdk-workflows/src/test/java/io/dapr/workflows/runtime/ActivityWrapperTest.java rename to sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowActivityWrapperTest.java index 1b3a134b4..754c02bd8 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/ActivityWrapperTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowActivityWrapperTest.java @@ -1,6 +1,8 @@ package io.dapr.workflows.runtime; import com.microsoft.durabletask.TaskActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import org.junit.Assert; import org.junit.Test; @@ -10,7 +12,7 @@ import static org.mockito.Mockito.when; -public class ActivityWrapperTest { +public class WorkflowActivityWrapperTest { public static class TestActivity implements WorkflowActivity { @Override public Object run(WorkflowActivityContext ctx) { @@ -21,10 +23,10 @@ public Object run(WorkflowActivityContext ctx) { @Test public void getName() throws NoSuchMethodException { - ActivityWrapper wrapper = new ActivityWrapper<>( - ActivityWrapperTest.TestActivity.class); + WorkflowActivityWrapper wrapper = new WorkflowActivityWrapper<>( + WorkflowActivityWrapperTest.TestActivity.class); Assert.assertEquals( - "io.dapr.workflows.runtime.ActivityWrapperTest.TestActivity", + "io.dapr.workflows.runtime.WorkflowActivityWrapperTest.TestActivity", wrapper.getName() ); } @@ -32,8 +34,8 @@ public void getName() throws NoSuchMethodException { @Test public void createWithClass() throws NoSuchMethodException { TaskActivityContext mockContext = mock(TaskActivityContext.class); - ActivityWrapper wrapper = new ActivityWrapper<>( - ActivityWrapperTest.TestActivity.class); + WorkflowActivityWrapper wrapper = new WorkflowActivityWrapper<>( + WorkflowActivityWrapperTest.TestActivity.class); when(mockContext.getInput(String.class)).thenReturn("Hello"); when(mockContext.getName()).thenReturn("TestActivityContext"); Object result = wrapper.create().run(mockContext); diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilderTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilderTest.java index fefd34090..81e3c30f1 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilderTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeBuilderTest.java @@ -14,6 +14,8 @@ import io.dapr.workflows.Workflow; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; import io.dapr.workflows.WorkflowStub; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -25,7 +27,7 @@ import java.io.PrintStream; public class WorkflowRuntimeBuilderTest { - public static class TestWorkflow extends Workflow { + public static class TestWorkflow implements Workflow { @Override public WorkflowStub create() { return ctx -> { diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeTest.java index 42e2b7489..d3bd40a43 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowRuntimeTest.java @@ -16,27 +16,17 @@ import com.microsoft.durabletask.DurableTaskGrpcWorker; import com.microsoft.durabletask.DurableTaskGrpcWorkerBuilder; -import io.dapr.workflows.Workflow; -import io.dapr.workflows.WorkflowStub; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertDoesNotThrow; public class WorkflowRuntimeTest { - public static class TestWorkflow extends Workflow { - @Override - public WorkflowStub create() { - return ctx -> { }; - } - } @Test public void startTest() { DurableTaskGrpcWorker worker = new DurableTaskGrpcWorkerBuilder().build(); try (WorkflowRuntime runtime = new WorkflowRuntime(worker)) { - assertDoesNotThrow(() -> { - runtime.start(false); - }); + assertDoesNotThrow(() -> runtime.start(false)); } } diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/OrchestratorWrapperTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowWrapperTest.java similarity index 81% rename from sdk-workflows/src/test/java/io/dapr/workflows/runtime/OrchestratorWrapperTest.java rename to sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowWrapperTest.java index 4921d8d6e..6066a7f7c 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/OrchestratorWrapperTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/WorkflowWrapperTest.java @@ -26,8 +26,8 @@ import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; -public class OrchestratorWrapperTest { - public static class TestWorkflow extends Workflow { +public class WorkflowWrapperTest { + public static class TestWorkflow implements Workflow { @Override public WorkflowStub create() { return WorkflowContext::getInstanceId; @@ -36,9 +36,9 @@ public WorkflowStub create() { @Test public void getName() { - OrchestratorWrapper wrapper = new OrchestratorWrapper<>(TestWorkflow.class); + WorkflowWrapper wrapper = new WorkflowWrapper<>(TestWorkflow.class); Assertions.assertEquals( - "io.dapr.workflows.runtime.OrchestratorWrapperTest.TestWorkflow", + "io.dapr.workflows.runtime.WorkflowWrapperTest.TestWorkflow", wrapper.getName() ); } @@ -46,7 +46,7 @@ public void getName() { @Test public void createWithClass() { TaskOrchestrationContext mockContext = mock(TaskOrchestrationContext.class); - OrchestratorWrapper wrapper = new OrchestratorWrapper<>(TestWorkflow.class); + WorkflowWrapper wrapper = new WorkflowWrapper<>(TestWorkflow.class); when(mockContext.getInstanceId()).thenReturn("uuid"); wrapper.create().run(mockContext); verify(mockContext, times(1)).getInstanceId(); diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/saga/DaprSagaContextImplTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/saga/DefaultSagaContextTest.java similarity index 80% rename from sdk-workflows/src/test/java/io/dapr/workflows/saga/DaprSagaContextImplTest.java rename to sdk-workflows/src/test/java/io/dapr/workflows/saga/DefaultSagaContextTest.java index 9c1918a41..4f92c4f9e 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/saga/DaprSagaContextImplTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/saga/DefaultSagaContextTest.java @@ -6,11 +6,12 @@ import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; +import io.dapr.workflows.runtime.saga.DefaultSagaContext; import org.junit.Test; import io.dapr.workflows.WorkflowContext; -public class DaprSagaContextImplTest { +public class DefaultSagaContextTest { @Test public void testDaprSagaContextImpl_IllegalArgumentException() { @@ -18,11 +19,11 @@ public void testDaprSagaContextImpl_IllegalArgumentException() { WorkflowContext workflowContext = mock(WorkflowContext.class); assertThrows(IllegalArgumentException.class, () -> { - new DaprSagaContextImpl(saga, null); + new DefaultSagaContext(saga, null); }); assertThrows(IllegalArgumentException.class, () -> { - new DaprSagaContextImpl(null, workflowContext); + new DefaultSagaContext(null, workflowContext); }); } @@ -30,7 +31,7 @@ public void testDaprSagaContextImpl_IllegalArgumentException() { public void test_registerCompensation() { Saga saga = mock(Saga.class); WorkflowContext workflowContext = mock(WorkflowContext.class); - DaprSagaContextImpl ctx = new DaprSagaContextImpl(saga, workflowContext); + DefaultSagaContext ctx = new DefaultSagaContext(saga, workflowContext); String activityClassName = "name1"; Object activityInput = new Object(); @@ -44,7 +45,7 @@ public void test_registerCompensation() { public void test_compensate() { Saga saga = mock(Saga.class); WorkflowContext workflowContext = mock(WorkflowContext.class); - DaprSagaContextImpl ctx = new DaprSagaContextImpl(saga, workflowContext); + DefaultSagaContext ctx = new DefaultSagaContext(saga, workflowContext); doNothing().when(saga).compensate(workflowContext); diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaIntegrationTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaIntegrationTest.java index 0a39d64f2..99342bbde 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaIntegrationTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaIntegrationTest.java @@ -4,10 +4,8 @@ import org.junit.Test; -import com.microsoft.durabletask.TaskActivityContext; - -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; +import io.dapr.workflows.WorkflowActivityContext; public class SagaIntegrationTest { @@ -125,7 +123,7 @@ private V callActivity(String activityClassName, Object input, Class retu try { Class activityClass = Class.forName(activityClassName); WorkflowActivity activity = (WorkflowActivity) activityClass.getDeclaredConstructor().newInstance(); - WorkflowActivityContext ctx = new WorkflowActivityContext(new TaskActivityContext() { + WorkflowActivityContext ctx = new WorkflowActivityContext() { @Override public java.lang.String getName() { @@ -136,7 +134,7 @@ public java.lang.String getName() { public T getInput(Class targetType) { return (T) input; } - }); + }; randomFail(); diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaTest.java index 314565509..72df91202 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/saga/SagaTest.java @@ -32,6 +32,7 @@ import java.util.concurrent.Future; import java.util.concurrent.TimeUnit; +import io.dapr.workflows.WorkflowActivityContext; import org.junit.Test; import org.mockito.Mockito; import org.mockito.invocation.InvocationOnMock; @@ -41,8 +42,7 @@ import com.microsoft.durabletask.TaskOptions; import io.dapr.workflows.WorkflowContext; -import io.dapr.workflows.runtime.WorkflowActivity; -import io.dapr.workflows.runtime.WorkflowActivityContext; +import io.dapr.workflows.WorkflowActivity; public class SagaTest {