From 3fa207d242a88c74b33ccb801cdaf87c17d1bbd9 Mon Sep 17 00:00:00 2001 From: Julio Date: Mon, 12 Jun 2023 18:50:40 +0100 Subject: [PATCH 1/2] Implementing getCurrentInstant() authoring method --- .../java/io/dapr/examples/workflows/DemoWorkflow.java | 1 + .../dapr/workflows/runtime/DaprWorkflowContextImpl.java | 8 ++++++++ .../java/io/dapr/workflows/runtime/WorkflowContext.java | 3 +++ .../workflows/runtime/DaprWorkflowContextImplTest.java | 6 ++++++ 4 files changed, 18 insertions(+) diff --git a/examples/src/main/java/io/dapr/examples/workflows/DemoWorkflow.java b/examples/src/main/java/io/dapr/examples/workflows/DemoWorkflow.java index deae954950..6ae892c38c 100644 --- a/examples/src/main/java/io/dapr/examples/workflows/DemoWorkflow.java +++ b/examples/src/main/java/io/dapr/examples/workflows/DemoWorkflow.java @@ -29,6 +29,7 @@ public class DemoWorkflow extends Workflow { public void run(WorkflowContext ctx) { ctx.getLogger().info("Starting Workflow: " + ctx.getName()); ctx.getLogger().info("Instance ID: " + ctx.getInstanceId()); + ctx.getLogger().info("Current Orchestration Time: " + ctx.getCurrentInstant()); ctx.getLogger().info("Waiting for event: 'myEvent'..."); try { ctx.waitForExternalEvent("myEvent", Duration.ofSeconds(10)).await(); diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DaprWorkflowContextImpl.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DaprWorkflowContextImpl.java index e81359c565..8bd4467d30 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DaprWorkflowContextImpl.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/DaprWorkflowContextImpl.java @@ -19,6 +19,7 @@ import org.slf4j.LoggerFactory; import org.slf4j.helpers.NOPLogger; import java.time.Duration; +import java.time.Instant; /** * Dapr workflow context implementation. @@ -82,6 +83,13 @@ public String getInstanceId() { return this.innerContext.getInstanceId(); } + /** + * {@inheritDoc} + */ + public Instant getCurrentInstant() { + return this.innerContext.getCurrentInstant(); + } + /** * {@inheritDoc} */ diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java index b13a2660b0..d95665e591 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java @@ -18,6 +18,7 @@ import java.io.PrintStream; import java.time.Duration; +import java.time.Instant; /** * Context object used by workflow implementations to perform actions such as scheduling activities, @@ -49,6 +50,8 @@ public interface WorkflowContext { */ String getInstanceId(); + Instant getCurrentInstant(); + /** * Completes the current workflow. * diff --git a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DaprWorkflowContextImplTest.java b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DaprWorkflowContextImplTest.java index b5278599d3..3ea0da88e7 100644 --- a/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DaprWorkflowContextImplTest.java +++ b/sdk-workflows/src/test/java/io/dapr/workflows/runtime/DaprWorkflowContextImplTest.java @@ -45,6 +45,12 @@ public void getInstanceIdTest() { verify(mockInnerContext, times(1)).getInstanceId(); } + @Test + public void getCurrentInstantTest() { + context.getCurrentInstant(); + verify(mockInnerContext, times(1)).getCurrentInstant(); + } + @Test public void waitForExternalEventTest() { String expectedEvent = "TestEvent"; From 64ff46c84478d54df1020aecfbc70c2c50a72b84 Mon Sep 17 00:00:00 2001 From: julioalex-rezende Date: Tue, 13 Jun 2023 15:15:42 +0100 Subject: [PATCH 2/2] Including documentation --- .../main/java/io/dapr/workflows/runtime/WorkflowContext.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java index d95665e591..57f2454347 100644 --- a/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java +++ b/sdk-workflows/src/main/java/io/dapr/workflows/runtime/WorkflowContext.java @@ -50,6 +50,10 @@ public interface WorkflowContext { */ String getInstanceId(); + /** + * Gets the current orchestration time in UTC. + * @return the current orchestration time in UTC + */ Instant getCurrentInstant(); /**