+sam #13890 Add Akka Main Activator template for Java 8

This commit is contained in:
Björn Antonsson 2014-04-16 08:42:32 +02:00
parent b48a97f9b4
commit 8b4b28c6f5
13 changed files with 400 additions and 0 deletions

View file

@ -0,0 +1,19 @@
package sample.hello;
import akka.actor.AbstractActor;
import akka.japi.pf.ReceiveBuilder;
public class Greeter extends AbstractActor {
public static enum Msg {
GREET, DONE;
}
public Greeter() {
receive(ReceiveBuilder.
matchEquals(Msg.GREET, m -> {
System.out.println("Hello World!");
sender().tell(Msg.DONE, self());
}).build());
}
}

View file

@ -0,0 +1,26 @@
package sample.hello;
import akka.actor.AbstractActor;
import akka.actor.Props;
import akka.actor.ActorRef;
import akka.japi.pf.ReceiveBuilder;
import static sample.hello.Greeter.Msg;
public class HelloWorld extends AbstractActor {
public HelloWorld() {
receive(ReceiveBuilder.
matchEquals(Msg.DONE, m -> {
// when the greeter is done, stop this actor and with it the application
context().stop(self());
}).build());
}
@Override
public void preStart() {
// create the greeter actor
final ActorRef greeter = getContext().actorOf(Props.create(Greeter.class), "greeter");
// tell it to perform the greeting
greeter.tell(Greeter.Msg.GREET, self());
}
}

View file

@ -0,0 +1,8 @@
package sample.hello;
public class Main {
public static void main(String[] args) {
akka.Main.main(new String[] { HelloWorld.class.getName() });
}
}

View file

@ -0,0 +1,28 @@
package sample.hello;
import akka.actor.*;
import akka.japi.pf.ReceiveBuilder;
public class Main2 {
public static void main(String[] args) {
ActorSystem system = ActorSystem.create("Hello");
ActorRef a = system.actorOf(Props.create(HelloWorld.class), "helloWorld");
system.actorOf(Props.create(Terminator.class, a), "terminator");
}
public static class Terminator extends AbstractLoggingActor {
private final ActorRef ref;
public Terminator(ActorRef ref) {
this.ref = ref;
getContext().watch(ref);
receive(ReceiveBuilder.
match(Terminated.class, t -> {
log().info("{} has terminated, shutting down system", ref.path());
context().system().shutdown();
}).build());
}
}
}