1515import akka .actor .typed .SpawnProtocol ;
1616import akka .actor .typed .SpawnProtocol .Spawn ;
1717import akka .actor .typed .eventstream .EventStream .Publish ;
18+ import akka .actor .typed .eventstream .EventStream .Subscribe ;
19+ import akka .actor .typed .javadsl .AbstractBehavior ;
20+ import akka .actor .typed .javadsl .ActorContext ;
1821import akka .actor .typed .javadsl .Adapter ;
1922import akka .actor .typed .javadsl .AskPattern ;
23+ import akka .actor .typed .javadsl .Behaviors ;
24+ import akka .actor .typed .javadsl .Receive ;
2025import java .time .Duration ;
2126import java .util .concurrent .CompletionStage ;
2227import org .junit .Assert ;
2631import akka .actor .DeadLetter ;
2732import akka .actor .typed .ActorRef ;
2833import akka .actor .typed .ActorSystem ;
29- import akka .actor .typed .eventstream .EventStream .Subscribe ;
30- import akka .actor .typed .javadsl .AbstractBehavior ;
31- import akka .actor .typed .javadsl .ActorContext ;
32- import akka .actor .typed .javadsl .Behaviors ;
33- import akka .actor .typed .javadsl .Receive ;
34- import org .slf4j .Logger ;
3534// #imports-deadletter
3635
3736public class LoggingDocTest extends JUnitSuite {
3837
3938 @ Test
4039 public void subscribeToDeadLetters () {
41- ActorSystem <SpawnProtocol .Command > system = ActorSystem .create (SpawnProtocol . create (),
42- "DeadLettersSystem" );
43- // #subscribe-deadletter
44- ActorSystem . create ( Behaviors . setup ( ctx -> {
45- ActorRef <DeadLetter > listener = ctx .spawn (DeadLetterActor . create () , "listener" );
46- ctx .getSystem ().eventStream ().tell (new Subscribe <>(DeadLetter .class , listener ));
47- return Behaviors . empty ();
48- }), "DeadLettersSystem" );
49- // #subscribe-deadletter
40+ ActorSystem <SpawnProtocol .Command > system = ActorSystem .create (
41+ Behaviors . setup ( ctx -> {
42+ Behavior < DeadLetter > deadLetterListener = Behaviors . empty ();
43+ // #subscribe-deadletter
44+ ActorRef <DeadLetter > listener = ctx .spawn (deadLetterListener , "listener" );
45+ ctx .getSystem ().eventStream ().tell (new Subscribe <>(DeadLetter .class , listener ));
46+ // #subscribe-deadletter
47+ return SpawnProtocol . create ( );
48+ }), "DeadLettersSystem" );
5049 ActorTestKit .shutdown (system );
5150 }
5251
5352 public
5453 // #deadletter-actor
55- static class DeadLetterActor extends AbstractBehavior <DeadLetter > {
56-
57- final Logger log = getContext ().getLog ();
54+ static class DeadLetterActor extends AbstractBehavior <String > {
5855
59- public static Behavior <DeadLetter > create () {
56+ public static Behavior <String > create () {
6057 return Behaviors .setup (DeadLetterActor ::new );
6158 }
6259
63- public DeadLetterActor (ActorContext <DeadLetter > context ) {
60+ public DeadLetterActor (ActorContext <String > context ) {
6461 super (context );
6562 ActorRef <DeadLetter > messageAdapter = context .messageAdapter (
6663 DeadLetter .class ,
67- d -> d
64+ d -> d . message (). toString ()
6865 );
69- // subscribe DeadLetter at start up .
66+ // subscribe DeadLetter at startup .
7067 context .getSystem ().eventStream ()
7168 .tell (new Subscribe <>(DeadLetter .class , messageAdapter ));
7269 }
7370
7471 @ Override
75- public Receive <DeadLetter > createReceive () {
76- return newReceiveBuilder ().onMessage (DeadLetter .class , msg -> {
77- log .info ("receive dead letter: {} from <{}> to <{}>" , msg , msg .sender (),
78- msg .recipient ());
72+ public Receive <String > createReceive () {
73+ return newReceiveBuilder ().onMessage (String .class , msg -> {
74+ getContext ().getLog ().info ("receive dead letter: {}" , msg );
7975 return Behaviors .same ();
8076 }).build ();
8177 }
@@ -107,8 +103,6 @@ public Electronic(String artist) {
107103
108104 static class Listener extends AbstractBehavior <AllKindsOfMusic > {
109105
110- final Logger log = getContext ().getLog ();
111-
112106 public static Behavior <AllKindsOfMusic > create () {
113107 return Behaviors .setup (Listener ::new );
114108 }
@@ -122,12 +116,12 @@ public Listener(ActorContext<AllKindsOfMusic> context) {
122116 public Receive <AllKindsOfMusic > createReceive () {
123117 return newReceiveBuilder ()
124118 .onMessage (Jazz .class , msg -> {
125- log .info ("{} is listening to Jazz: {}" , getContext ().getSelf ().path ().name (),
119+ getContext (). getLog () .info ("{} is listening to Jazz: {}" , getContext ().getSelf ().path ().name (),
126120 msg );
127121 return Behaviors .same ();
128122 })
129123 .onMessage (Electronic .class , msg -> {
130- log .info ("{} is listening to Electronic: {}" ,
124+ getContext (). getLog () .info ("{} is listening to Electronic: {}" ,
131125 getContext ().getSelf ().path ().name (), msg );
132126 return Behaviors .same ();
133127 }).build ();
0 commit comments