From 175880359a92e3666e228244db3c8d10a9de7d3d Mon Sep 17 00:00:00 2001 From: Arthur Costa Date: Fri, 14 Mar 2025 12:03:47 +0000 Subject: [PATCH 1/2] Adding all the changes needed to migrate for apache pekko --- actor-model-with-scala/pom.xml | 148 ++++++++---------- .../actor_model_with_scala/Main.scala | 14 +- .../actors/DemoExecutorHelper.scala | 10 +- .../actors/SlackMessageCoordinator.scala | 7 +- .../actors/simple/SimpleActorAsk.scala | 2 +- .../actors/simple/SimpleActorSender.scala | 2 +- .../actors/stateful/StatefulActor.scala | 9 +- .../actors/stateless/StatelessActor.scala | 2 +- .../src/main/scala/resources/application.conf | 10 +- 9 files changed, 90 insertions(+), 114 deletions(-) diff --git a/actor-model-with-scala/pom.xml b/actor-model-with-scala/pom.xml index 7addb1e..e116e63 100644 --- a/actor-model-with-scala/pom.xml +++ b/actor-model-with-scala/pom.xml @@ -1,95 +1,62 @@ + - 4.0.0 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 - com.github.techshithoughts - actor-model-with-scala - 1.0.0-SNAPSHOT + com.github.techshithoughts + actor-model-with-scala + 1.0.0-SNAPSHOT - - 21 - 21 - 3.3.5 - 3 - 2.6.21 - 4.0.0-M24 - 3.2.19 - 4.5.6 - 1.4.12 - 2.0.9 - - - - - com.typesafe.akka - akka-bom_${scala.binary.version} - ${akka.version} - pom - import - - - + + 21 + 21 + 3.3.5 + 1.1.3 + 4.0.0-M24 + 3.2.19 + 4.5.6 + 1.4.12 + 2.0.9 + + + - org.scala-lang - scala3-library_${scala.binary.version} - ${scala.version} - - - com.typesafe.akka - akka-actor-typed_${scala.binary.version} - ${akka.version} - - - com.typesafe.akka - akka-actor-testkit-typed_${scala.binary.version} - ${akka.version} - test - - - org.slf4j - slf4j-api - ${slf4j-api.version} - - - ch.qos.logback - logback-classic - ${logback-classic.version} - runtime + org.apache.pekko + pekko-bom_3 + ${apache.pekko.version} + pom + import + - - - central - https://repo1.maven.org/maven2/ - - - sonatype - https://oss.sonatype.org/content/repositories/releases/ - - + + + org.apache.pekko + pekko-actor-typed_3 + ${apache.pekko.version} + + + org.apache.pekko + pekko-actor-testkit-typed_3 + ${apache.pekko.version} + test + + + org.apache.pekko + pekko-slf4j_3 + + + ch.qos.logback + logback-classic + ${logback-classic.version} + + - - net.alchim31.maven - scala-maven-plugin - ${scala.maven.plugin.version} - - - - compile - testCompile - - process-sources - - - - ${scala.version} - - org.codehaus.mojo exec-maven-plugin @@ -129,7 +96,22 @@ + + net.alchim31.maven + scala-maven-plugin + ${scala.maven.plugin.version} + + ${scala.version} + + + + + compile + testCompile + + + + - - \ No newline at end of file + diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/Main.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/Main.scala index 1b1c153..44c8818 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/Main.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/Main.scala @@ -1,18 +1,10 @@ package com.github.techshithoughts.actor_model_with_scala - -import akka.actor.ActorSystem +import org.apache.pekko.actor.ActorSystem import com.github.techshithoughts.actor_model_with_scala.actors.DemoExecutorHelper - - object Main extends App { - - // Create an actor system - val system = ActorSystem("my-system") - - // Use the correct method from DemoExecutorHelper + val system = ActorSystem("techshi-thoughts-actor-model-with-scala") DemoExecutorHelper.statelessWorkerExampleWithLogging(system) - system.terminate() -} +} \ No newline at end of file diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala index f8b2957..ea42b1e 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala @@ -3,9 +3,9 @@ package com.github.techshithoughts.actor_model_with_scala.actors import scala.concurrent.Await import scala.concurrent.duration._ import scala.concurrent.ExecutionContext.Implicits.global -import akka.actor.{ActorSystem, Props, ActorRef} -import akka.pattern.ask -import akka.util.Timeout +import org.apache.pekko.actor.{ActorSystem, Props, ActorRef} +import org.apache.pekko.pattern.ask +import org.apache.pekko.util.Timeout import com.github.techshithoughts.actor_model_with_scala.actors.stateful._ import com.github.techshithoughts.actor_model_with_scala.actors.stateless._ @@ -114,6 +114,6 @@ object DemoExecutorHelper { workerRafaelActor ) } - - + + } diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/SlackMessageCoordinator.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/SlackMessageCoordinator.scala index b37afd0..6724b28 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/SlackMessageCoordinator.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/SlackMessageCoordinator.scala @@ -1,7 +1,8 @@ package com.github.techshithoughts.actor_model_with_scala.actors -import akka.actor.{Actor, ActorLogging, ActorRef, Props} -import akka.pattern.ask +import org.apache.pekko.actor.{Actor, ActorLogging, ActorRef, Props} +import org.apache.pekko.pattern.ask +import org.apache.pekko.util.Timeout import scala.concurrent.{Future, ExecutionContext} import scala.concurrent.duration.DurationInt import com.github.techshithoughts.actor_model_with_scala.actors.stateful.messages._ @@ -22,7 +23,7 @@ object SlackMessageCoordinator { ) } -import akka.util.Timeout + class SlackMessageCoordinator(implicit ec: ExecutionContext) extends Actor diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorAsk.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorAsk.scala index 2a0ba35..1c4af01 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorAsk.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorAsk.scala @@ -1,6 +1,6 @@ package com.github.techshithoughts.actor_model_with_scala.actors.simple -import akka.actor.{Actor, ActorLogging} +import org.apache.pekko.actor.{Actor, ActorLogging} import com.github.techshithoughts.actor_model_with_scala.actors.simple.messages.{IntMessage, StringMessage, DoubleMessage} class SimpleActorAsk extends Actor with ActorLogging { diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorSender.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorSender.scala index ac3b2ac..6cd75d1 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorSender.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/simple/SimpleActorSender.scala @@ -1,6 +1,6 @@ package com.github.techshithoughts.actor_model_with_scala.actors.simple -import akka.actor.{Actor, ActorLogging} +import org.apache.pekko.actor.{Actor, ActorLogging} import com.github.techshithoughts.actor_model_with_scala.actors.simple.messages.{IntMessage, StringMessage, DoubleMessage} class SimpleActorSender extends Actor with ActorLogging { diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateful/StatefulActor.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateful/StatefulActor.scala index ebbda6d..1dbf88f 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateful/StatefulActor.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateful/StatefulActor.scala @@ -1,9 +1,10 @@ package com.github.techshithoughts.actor_model_with_scala.actors.stateful -import akka.actor.Actor -import akka.actor.ActorLogging -import com.github.techshithoughts.actor_model_with_scala.actors.stateful.messages._ -import akka.actor.Props +import org.apache.pekko.actor.Actor +import org.apache.pekko.actor.ActorLogging +import com.github.techshithoughts.actor_model_with_scala.actors.stateful.messages.* +import org.apache.pekko.actor.Props +import org.apache.pekko.actor.ActorLogging object StatefulActor { def props(name: String, status: WorkerStatusStateful): Props = Props( diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateless/StatelessActor.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateless/StatelessActor.scala index f1c7e79..3bf54bd 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateless/StatelessActor.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/stateless/StatelessActor.scala @@ -1,6 +1,6 @@ package com.github.techshithoughts.actor_model_with_scala.actors.stateless -import akka.actor.{Actor, ActorLogging, Props} +import org.apache.pekko.actor.{Actor, ActorLogging, Props} import com.github.techshithoughts.actor_model_with_scala.actors.stateless.messages._ // Companion object for StatelessActor, providing a factory method to create actor instances diff --git a/actor-model-with-scala/src/main/scala/resources/application.conf b/actor-model-with-scala/src/main/scala/resources/application.conf index c1c3164..e5aab32 100644 --- a/actor-model-with-scala/src/main/scala/resources/application.conf +++ b/actor-model-with-scala/src/main/scala/resources/application.conf @@ -1,13 +1,13 @@ -akka { +pekko { # Set the log level for Akka loglevel = "INFO" # Set the log level for stdout stdout-loglevel = "WARNING" # Specify the loggers to use - loggers = ["akka.event.Logging$DefaultLogger"] + loggers = ["org.apache.pekko.event.slf4j.Slf4jLogger"] # Specify the logging filter - logging-filter = "akka.event.DefaultLoggingFilter" + logging-filter = "org.apache.pekko.event.slf4j.Slf4jLoggingFilter" # Timeout for logger startup logger-startup-timeout = 5s # Number of dead letters to log @@ -20,6 +20,6 @@ akka { jvm-exit-on-fatal-error = on # Enable JVM shutdown hooks jvm-shutdown-hooks = on - # Fail on mixed Akka versions + # Fail on mixed Pekko versions fail-mixed-versions = on -} \ No newline at end of file +} From 9135df140ab9171f9090d504ba3c96a73fc9cfbf Mon Sep 17 00:00:00 2001 From: "Tech.ish Thoughts" <147972084+techishthoughts@users.noreply.github.com> Date: Fri, 14 Mar 2025 13:44:33 +0000 Subject: [PATCH 2/2] removing extra space --- .../actor_model_with_scala/actors/DemoExecutorHelper.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala index ea42b1e..5151c4f 100644 --- a/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala +++ b/actor-model-with-scala/src/main/scala/com/github/techshithoughts/actor_model_with_scala/actors/DemoExecutorHelper.scala @@ -4,7 +4,7 @@ import scala.concurrent.Await import scala.concurrent.duration._ import scala.concurrent.ExecutionContext.Implicits.global import org.apache.pekko.actor.{ActorSystem, Props, ActorRef} -import org.apache.pekko.pattern.ask +import org.apache.pekko.pattern.ask import org.apache.pekko.util.Timeout import com.github.techshithoughts.actor_model_with_scala.actors.stateful._