static public Props props(String message, ActorRef printerActor) { return Props.create(Greeter.class, () -> new Greeter(message, printerActor)); }
static public Props props() { return Props.create(Printer.class, () -> new Printer()); }
@Override public Receive createReceive() { return receiveBuilder() .match(WhoToGreet.class, wtg -> { this.greeting = message + ", " + wtg.who; }) .match(Greet.class, x -> { //#greeter-send-message printerActor.tell(new Greeting(greeting), getSelf()); //#greeter-send-message }) .build(); } //#greeter-messages
system.actorOf(Printer.props(), "printerActor"); final ActorRef howdyGreeter = system.actorOf(Greeter.props("Howdy", printerActor), "howdyGreeter"); final ActorRef helloGreeter = system.actorOf(Greeter.props("Hello", printerActor), "helloGreeter"); final ActorRef goodDayGreeter = system.actorOf(Greeter.props("Good day", printerActor), "goodDayGreeter"); howdyGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender()); howdyGreeter.tell(new Greet(), ActorRef.noSender()); howdyGreeter.tell(new WhoToGreet("Lightbend"), ActorRef.noSender()); howdyGreeter.tell(new Greet(), ActorRef.noSender()); helloGreeter.tell(new WhoToGreet("Java"), ActorRef.noSender()); helloGreeter.tell(new Greet(), ActorRef.noSender()); goodDayGreeter.tell(new WhoToGreet("Play"), ActorRef.noSender()); goodDayGreeter.tell(new Greet(), ActorRef.noSender()); printerActor.tell(new Greeting("111111"), ActorRef.noSender()); printerActor.tell(new Greeting("222222"), ActorRef.noSender()); printerActor.tell(new Greeting("333333"), ActorRef.noSender()); printerActor.tell(new Greeting2("444444"), ActorRef.noSender()); printerActor.tell(new Greeting2("555555"), ActorRef.noSender()); printerActor.tell(new Greeting2("666666"), ActorRef.noSender());
@Test public void testGreeterActorSendingOfGreeting() { final TestKit testProbe = new TestKit(system); final ActorRef helloGreeter = system.actorOf(Greeter.props("Hello", testProbe.getRef())); helloGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender()); helloGreeter.tell(new Greet(), ActorRef.noSender()); Greeting greeting = testProbe.expectMsgClass(Greeting.class); assertEquals("Hello, Akka", greeting.message); } }
@Override public Receive createReceive() { return receiveBuilder() .match(Greeting.class, greeting -> { Thread.sleep(1000); log.info(greeting.message); }) .match(Greeting2.class, greeting -> { Thread.sleep(1000); log.info(greeting.message); }) .build(); } //#printer-messages
system.actorOf(Printer.props(), "printerActor"); final ActorRef howdyGreeter = system.actorOf(Greeter.props("Howdy", printerActor), "howdyGreeter"); final ActorRef helloGreeter = system.actorOf(Greeter.props("Hello", printerActor), "helloGreeter"); final ActorRef goodDayGreeter = system.actorOf(Greeter.props("Good day", printerActor), "goodDayGreeter"); howdyGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender()); howdyGreeter.tell(new Greet(), ActorRef.noSender()); howdyGreeter.tell(new WhoToGreet("Lightbend"), ActorRef.noSender()); howdyGreeter.tell(new Greet(), ActorRef.noSender()); helloGreeter.tell(new WhoToGreet("Java"), ActorRef.noSender()); helloGreeter.tell(new Greet(), ActorRef.noSender()); goodDayGreeter.tell(new WhoToGreet("Play"), ActorRef.noSender()); goodDayGreeter.tell(new Greet(), ActorRef.noSender()); printerActor.tell(new Greeting("111111"), ActorRef.noSender()); printerActor.tell(new Greeting("222222"), ActorRef.noSender()); printerActor.tell(new Greeting("333333"), ActorRef.noSender()); printerActor.tell(new Greeting2("444444"), ActorRef.noSender()); printerActor.tell(new Greeting2("555555"), ActorRef.noSender()); printerActor.tell(new Greeting2("666666"), ActorRef.noSender());
@Test public void testGreeterActorSendingOfGreeting() { final TestKit testProbe = new TestKit(system); final ActorRef helloGreeter = system.actorOf(Greeter.props("Hello", testProbe.getRef())); helloGreeter.tell(new WhoToGreet("Akka"), ActorRef.noSender()); helloGreeter.tell(new Greet(), ActorRef.noSender()); Greeting greeting = testProbe.expectMsgClass(Greeting.class); assertEquals("Hello, Akka", greeting.message); } }
@Override public Receive createReceive() { return receiveBuilder() .match(WhoToGreet.class, wtg -> { this.greeting = message + ", " + wtg.who; }) .match(Greet.class, x -> { //#greeter-send-message printerActor.tell(new Greeting(greeting), getSelf()); //#greeter-send-message }) .build(); } //#greeter-messages
static public Props props(String message, ActorRef printerActor) { return Props.create(Greeter.class, () -> new Greeter(message, printerActor)); }
static public Props props() { return Props.create(Printer.class, () -> new Printer()); }
@Override public Receive createReceive() { return receiveBuilder() .match(Greeting.class, greeting -> { Thread.sleep(1000); log.info(greeting.message); }) .match(Greeting2.class, greeting -> { Thread.sleep(1000); log.info(greeting.message); }) .build(); } //#printer-messages