/* * Copyright (C) 2009-2022 Lightbend Inc. */ package jdocs.io.japi; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import org.apache.pekko.actor.ActorRef; import org.apache.pekko.actor.ActorSystem; import org.apache.pekko.actor.Props; import com.typesafe.config.Config; import com.typesafe.config.ConfigFactory; public class EchoServer { public static void main(String[] args) throws InterruptedException { final Config config = ConfigFactory.parseString("pekko.loglevel=DEBUG"); final ActorSystem system = ActorSystem.create("EchoServer", config); try { final CountDownLatch latch = new CountDownLatch(1); final ActorRef watcher = system.actorOf(Props.create(Watcher.class, latch), "watcher"); final ActorRef nackServer = system.actorOf(Props.create(EchoManager.class, EchoHandler.class), "nack"); final ActorRef ackServer = system.actorOf(Props.create(EchoManager.class, SimpleEchoHandler.class), "ack"); watcher.tell(nackServer, ActorRef.noSender()); watcher.tell(ackServer, ActorRef.noSender()); latch.await(10, TimeUnit.MINUTES); } finally { system.terminate(); } } }