diff --git a/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java index 66a48c3f3e5bcc80be8ab7de974826ab96b31088..d411a8be32df2e0247eeecbddd9b5fd92a3ccc15 100644 --- a/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java +++ b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeService.java @@ -1,5 +1,8 @@ package io.takima.temporalpractice.bakery.bake; +import io.temporal.activity.ActivityInterface; + +@ActivityInterface public interface BakeService { void bake(); } diff --git a/src/main/java/io/takima/temporalpractice/bakery/bake/BakeServiceImpl.java b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..346b162162bbb58491d017e5d73df6e56e0befed --- /dev/null +++ b/src/main/java/io/takima/temporalpractice/bakery/bake/BakeServiceImpl.java @@ -0,0 +1,8 @@ +package io.takima.temporalpractice.bakery.bake; + +public class BakeServiceImpl implements BakeService { + @Override + public void bake() { + System.out.println("Baking cookies!"); + } +} \ No newline at end of file diff --git a/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java index 486e82f5ed12bed568ecc0e77ad98631556d8559..2bf83ed4d7dca9dd7096800ece52b82e1ae22efb 100644 --- a/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java +++ b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterService.java @@ -1,5 +1,8 @@ package io.takima.temporalpractice.bakery.batter; +import io.temporal.activity.ActivityInterface; + +@ActivityInterface public interface BatterService { void prepareBatter(); } diff --git a/src/main/java/io/takima/temporalpractice/bakery/batter/BatterServiceImpl.java b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..305a10a8d168e8e99e5f6d3817f8c00d21a1d3f0 --- /dev/null +++ b/src/main/java/io/takima/temporalpractice/bakery/batter/BatterServiceImpl.java @@ -0,0 +1,8 @@ +package io.takima.temporalpractice.bakery.batter; + +public class BatterServiceImpl implements BatterService { + @Override + public void prepareBatter() { + System.out.println("Mixing flour, sugar, and love..."); + } +} \ No newline at end of file diff --git a/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java b/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java index 76e6fec58821f7966ebef9112ef6d42338bd439e..738023465e87349a22f6007fb33faa31bd8a1efd 100644 --- a/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java +++ b/src/main/java/io/takima/temporalpractice/bakery/cookie/BestCookieWorkflow.java @@ -1,10 +1,30 @@ package io.takima.temporalpractice.bakery.cookie; +import io.temporal.activity.ActivityOptions; +import io.temporal.workflow.Workflow; +import io.takima.temporalpractice.bakery.batter.BatterService; +import io.takima.temporalpractice.bakery.bake.BakeService; +import java.time.Duration; + public class BestCookieWorkflow implements CookieWorkflow { + private final BatterService batterService; + private final BakeService bakeService; + + public BestCookieWorkflow() { + ActivityOptions options = ActivityOptions.newBuilder() + .setTaskQueue("theOneAndOnlyQueue") + .setStartToCloseTimeout(Duration.ofSeconds(10)) + .build(); + + this.batterService = Workflow.newActivityStub(BatterService.class, options); + this.bakeService = Workflow.newActivityStub(BakeService.class, options); + } + @Override public void orderCookie() { - // Note: System.out.println is used here for simplicity - // In real applications, you should use proper Workflow-aware logging (we'll cover this in Day 2) - System.out.println("Cookie ordered... Yuum"); + System.out.println("Starting to prepare your cookie!"); + batterService.prepareBatter(); + bakeService.bake(); + System.out.println("Your cookie is ready!"); } } \ No newline at end of file