pekko/akka-samples/akka-sample-main-java-lambda/src/main/java/sample/hello/Main2.java
Viktor Klang cd8e97c060 +act - 15757 - Reworks implementation of ActorSystem shutdown
* deprecates awaitTermination, shutdown and isTerminated
  * introduces a terminate-method that returns a Future[Unit]
  * introduces a whenTerminated-method that returns a Future[Unit]
  * simplifies the implementation by removing blocking constructs
  * adds tests for terminate() and whenTerminated
2014-08-25 15:49:28 +02:00

28 lines
763 B
Java

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().terminate();
}).build());
}
}
}