init
This commit is contained in:
commit
829f4a5b08
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
.idea/
|
||||
target/
|
3
README.md
Normal file
3
README.md
Normal file
@ -0,0 +1,3 @@
|
||||
# akka-typed-scala-java
|
||||
|
||||
A basic example of Akka Typed with Scala and Java.
|
14
build.sbt
Normal file
14
build.sbt
Normal 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
1
project/build.properties
Normal file
@ -0,0 +1 @@
|
||||
sbt.version=1.2.7
|
1
project/plugins.sbt
Normal file
1
project/plugins.sbt
Normal file
@ -0,0 +1 @@
|
||||
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")
|
38
src/main/java/dev/oreineke/Main.java
Normal file
38
src/main/java/dev/oreineke/Main.java
Normal 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());
|
||||
}
|
||||
}
|
||||
|
28
src/main/scala/dev/oreineke/Application.scala
Normal file
28
src/main/scala/dev/oreineke/Application.scala
Normal 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
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user