also included: - a complete rewrite of the TCP docs based on real/tested/working code samples - an EchoServer implementation which handles all the edge cases, available in Java & Scala - renamed StopReading to SuspendReading to match up with ResumeReading - addition of Inbox.watch() - Inbox RST docs for Java(!) and Scala not included: - ScalaDoc / JavaDoc for all IO stuff
35 lines
1.1 KiB
Java
35 lines
1.1 KiB
Java
/**
|
|
* Copyright (C) 2009-2013 Typesafe Inc. <http://www.typesafe.com>
|
|
*/
|
|
|
|
package docs.io.japi;
|
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
import java.util.concurrent.TimeUnit;
|
|
|
|
import akka.actor.ActorRef;
|
|
import akka.actor.ActorSystem;
|
|
import akka.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("akka.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, null);
|
|
watcher.tell(ackServer, null);
|
|
latch.await(10, TimeUnit.MINUTES);
|
|
} finally {
|
|
system.shutdown();
|
|
}
|
|
}
|
|
|
|
}
|