diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java index dd30dd805..d6f935e8f 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContext.java @@ -32,7 +32,18 @@ class DefaultWorkflowActivityContext implements WorkflowActivityContext { * @throws IllegalArgumentException if context is null */ public DefaultWorkflowActivityContext(TaskActivityContext context) throws IllegalArgumentException { - this(context, LoggerFactory.getLogger(WorkflowActivityContext.class)); + this(context, WorkflowActivityContext.class); + } + + /** + * Constructor for WorkflowActivityContext. + * + * @param context TaskActivityContext + * @param clazz Class to use for logger + * @throws IllegalArgumentException if context is null + */ + public DefaultWorkflowActivityContext(TaskActivityContext context, Class clazz) throws IllegalArgumentException { + this(context, LoggerFactory.getLogger(clazz)); } /** 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 9fe15899a..067850c93 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 @@ -42,17 +42,28 @@ public class DefaultWorkflowContext implements WorkflowContext { private final Logger logger; /** - * Constructor for DaprWorkflowContextImpl. + * Constructor for DefaultWorkflowContext. * * @param context TaskOrchestrationContext * @throws IllegalArgumentException if context is null */ public DefaultWorkflowContext(TaskOrchestrationContext context) throws IllegalArgumentException { - this(context, LoggerFactory.getLogger(WorkflowContext.class)); + this(context, WorkflowContext.class); } /** - * Constructor for DaprWorkflowContextImpl. + * Constructor for DefaultWorkflowContext. + * + * @param context TaskOrchestrationContext + * @param clazz Class to use for logger + * @throws IllegalArgumentException if context is null + */ + public DefaultWorkflowContext(TaskOrchestrationContext context, Class clazz) throws IllegalArgumentException { + this(context, LoggerFactory.getLogger(clazz)); + } + + /** + * Constructor for DefaultWorkflowContext. * * @param context TaskOrchestrationContext * @param logger Logger diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityClassWrapper.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityClassWrapper.java index bbe97b2d1..43bd2ca20 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityClassWrapper.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityClassWrapper.java @@ -70,7 +70,7 @@ public class WorkflowActivityClassWrapper implements String.format("Unable to instantiate instance of activity class '%s'", this.name), e); } - result = activity.run(new DefaultWorkflowActivityContext(ctx)); + result = activity.run(new DefaultWorkflowActivityContext(ctx, activity.getClass())); return result; }; } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityInstanceWrapper.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityInstanceWrapper.java index 973a90ef9..09d1a9d6c 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityInstanceWrapper.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowActivityInstanceWrapper.java @@ -51,6 +51,6 @@ public class WorkflowActivityInstanceWrapper impleme @Override public TaskActivity create() { - return ctx -> activity.run(new DefaultWorkflowActivityContext(ctx)); + return ctx -> activity.run(new DefaultWorkflowActivityContext(ctx, activity.getClass())); } } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowClassWrapper.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowClassWrapper.java index 10b524874..73b6cc816 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowClassWrapper.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowClassWrapper.java @@ -57,7 +57,7 @@ class WorkflowClassWrapper implements TaskOrchestrationFacto ); } - workflow.run(new DefaultWorkflowContext(ctx)); + workflow.run(new DefaultWorkflowContext(ctx, workflow.getClass())); }; } } diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowInstanceWrapper.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowInstanceWrapper.java index f803c49de..77a568a38 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowInstanceWrapper.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowInstanceWrapper.java @@ -36,6 +36,6 @@ class WorkflowInstanceWrapper implements TaskOrchestrationFa @Override public TaskOrchestration create() { - return ctx -> workflow.run(new DefaultWorkflowContext(ctx)); + return ctx -> workflow.run(new DefaultWorkflowContext(ctx, workflow.getClass())); } } diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java index 837bf4c7d..b573e2611 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/DefaultWorkflowContextTest.java @@ -42,13 +42,13 @@ import static org.mockito.Mockito.*; public class DefaultWorkflowContextTest { private DefaultWorkflowContext context; + private DefaultWorkflowContext contextWithClass; private TaskOrchestrationContext mockInnerContext; private WorkflowContext testWorkflowContext; @BeforeEach public void setUp() { mockInnerContext = mock(TaskOrchestrationContext.class); - context = new DefaultWorkflowContext(mockInnerContext); testWorkflowContext = new WorkflowContext() { @Override public Logger getLogger() { @@ -141,6 +141,8 @@ public class DefaultWorkflowContextTest { } }; + context = new DefaultWorkflowContext(mockInnerContext); + contextWithClass = new DefaultWorkflowContext(mockInnerContext, testWorkflowContext.getClass()); } @Test diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContextTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContextTest.java index 90dfa565c..13cf3b6c6 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContextTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DefaultWorkflowActivityContextTest.java @@ -3,6 +3,7 @@ package io.dapr.workflows.runtime; import io.dapr.durabletask.TaskActivityContext; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; +import org.slf4j.Logger; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; @@ -34,7 +35,7 @@ class DefaultWorkflowActivityContextTest { @DisplayName("Should throw IllegalArgumentException when context parameter is null") void shouldThrowIllegalArgumentExceptionWhenContextParameterIsNull() { IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { - new DefaultWorkflowActivityContext(null); + new DefaultWorkflowActivityContext(null, TaskActivityContext.class); }); assertEquals("Context cannot be null", exception.getMessage()); } @@ -45,7 +46,7 @@ class DefaultWorkflowActivityContextTest { TaskActivityContext mockInnerContext = mock(TaskActivityContext.class); IllegalArgumentException exception = assertThrows(IllegalArgumentException.class, () -> { - new DefaultWorkflowActivityContext(mockInnerContext, null); + new DefaultWorkflowActivityContext(mockInnerContext, (Logger) null); }); assertEquals("Logger cannot be null", exception.getMessage()); }