This commit is contained in:
Olaf R. 2019-05-14 22:15:53 +02:00
commit 829f4a5b08
7 changed files with 87 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
.idea/
target/

3
README.md Normal file
View File

@ -0,0 +1,3 @@
# akka-typed-scala-java
A basic example of Akka Typed with Scala and Java.

14
build.sbt Normal file
View File

@ -0,0 +1,14 @@
name := "akka-typed"
version := "1.0"
scalaVersion := "2.12.6"
lazy val akkaVersion = "2.5.22"
libraryDependencies ++= Seq(
"com.typesafe.akka" %% "akka-actor" % akkaVersion,
"com.typesafe.akka" %% "akka-actor-typed" % akkaVersion,
"com.typesafe.akka" %% "akka-testkit" % akkaVersion,
"org.scalatest" %% "scalatest" % "3.0.5" % "test"
)

1
project/build.properties Normal file
View File

@ -0,0 +1 @@
sbt.version=1.2.7

1
project/plugins.sbt Normal file
View File

@ -0,0 +1 @@
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")

View File

@ -0,0 +1,38 @@
package dev.oreineke;
import akka.actor.typed.ActorSystem;
import akka.actor.typed.Behavior;
import akka.actor.typed.javadsl.Behaviors;
public class Main {
interface Message {}
static class Greet implements Message {
String name;
Greet(String name) {
this.name = name;
}
}
static class Stop implements Message {}
public static void main(String[] args) {
Behavior<Message> readyToGreet = Behaviors.receive(Message.class)
.onMessage(Greet.class, (context, message) -> {
context.getLog().info("Hello " + message.name + "!!!");
return Behaviors.same();
})
.onMessage((Stop.class), (context, message) -> {
context.getLog().info("Goodbye!");
return Behaviors.stopped();
})
.build();
ActorSystem<Message> greeter = ActorSystem.create(readyToGreet, "Greeter");
greeter.tell(new Greet("Peter"));
greeter.tell(new Greet("Paul"));
greeter.tell(new Greet("Marry"));
greeter.tell(new Stop());
}
}

View File

@ -0,0 +1,28 @@
package dev.oreineke
import akka.actor.typed.ActorSystem
import akka.actor.typed.scaladsl.Behaviors
object Application extends App {
sealed trait Message
final case class Greet(name: String) extends Message
final object Stop extends Message
val readyToGreet = Behaviors.receive[Message] { (context, message) =>
message match {
case Greet(name) =>
context.log.info(s"Hello $name!!!")
Behaviors.same
case Stop =>
context.log.info("Goodbye!")
Behaviors.stopped
}
}
val greeter = ActorSystem(readyToGreet, "Greeter")
greeter ! Greet("Peter")
greeter ! Greet("Paul")
greeter ! Greet("Marry")
greeter ! Stop
}