@@ -120,79 +120,88 @@ public void preStart() {
120120 public Receive createReceive () {
121121 return receiveBuilder ()
122122 .matchEquals (IS_READY , message -> getSender ().tell (_isReady , getSelf ()))
123- .matchEquals (UNBIND , unbindRequest -> {
124- final ActorRef requester = getSender ();
125- if (_connectionActor != null ) {
126- LOGGER .debug ()
127- .setMessage ("Tcp server starting unbinding..." )
128- .addData ("requester" , requester )
129- .addData ("connectionActor" , _connectionActor )
130- .addData ("name" , _sink .getName ())
131- .log ();
132- PatternsCS .ask (
133- _connectionActor ,
134- TcpMessage .unbind (),
135- UNBIND_TIMEOUT )
136- .whenComplete (
137- (response , throwable ) -> {
138- final LogBuilder logBuilder ;
139- if (throwable != null ) {
140- logBuilder = LOGGER .warn ()
141- .setThrowable (throwable );
142- } else {
143- logBuilder = LOGGER .info ();
144- }
145- logBuilder
146- .setMessage ("Tcp server completed unbinding" )
147- .addData ("requester" , requester )
148- .addData ("connectionActor" , _connectionActor )
149- .addData ("name" , _sink .getName ())
150- .addData ("success" , throwable == null )
151- .log ();
123+ .matchEquals (UNBIND , unbindRequest -> socketUnbind ())
124+ .match (Tcp .Bound .class , this ::socketBound )
125+ .match (Tcp .CommandFailed .class , this ::commandFailed )
126+ .match (Tcp .Connected .class , this ::connected )
127+ .build ();
128+ }
152129
153- requester .tell (response , getSelf ());
154- });
155- } else {
156- LOGGER .warn ()
157- .setMessage ("Tcp server cannot unbind; no connection" )
158- .addData ("sender" , getSender ())
159- .addData ("name" , _sink .getName ())
160- .log ();
161- requester .tell (new Tcp .Unbound$ (), getSelf ());
162- }
163- })
164- .match (Tcp .Bound .class , tcpBound -> {
165- _connectionActor = getSender ();
166- LOGGER .info ()
167- .setMessage ("Tcp server binding complete" )
168- .addData ("name" , _sink .getName ())
169- .addData ("connectionActor" , _connectionActor )
170- .addData ("address" , tcpBound .localAddress ().getAddress ().getHostAddress ())
171- .addData ("port" , tcpBound .localAddress ().getPort ())
172- .log ();
130+ private void socketUnbind () {
131+ final ActorRef requester = getSender ();
132+ if (_connectionActor != null ) {
133+ LOGGER .debug ()
134+ .setMessage ("Tcp server starting unbinding..." )
135+ .addData ("requester" , requester )
136+ .addData ("connectionActor" , _connectionActor )
137+ .addData ("name" , _sink .getName ())
138+ .log ();
139+ PatternsCS .ask (
140+ _connectionActor ,
141+ TcpMessage .unbind (),
142+ UNBIND_TIMEOUT )
143+ .whenComplete (
144+ (response , throwable ) -> {
145+ final LogBuilder logBuilder ;
146+ if (throwable != null ) {
147+ logBuilder = LOGGER .warn ()
148+ .setThrowable (throwable );
149+ } else {
150+ logBuilder = LOGGER .info ();
151+ }
152+ logBuilder
153+ .setMessage ("Tcp server completed unbinding" )
154+ .addData ("requester" , requester )
155+ .addData ("connectionActor" , _connectionActor )
156+ .addData ("name" , _sink .getName ())
157+ .addData ("success" , throwable == null )
158+ .log ();
173159
174- _isReady = true ;
175- })
176- .match (Tcp .CommandFailed .class , failed -> {
177- LOGGER .warn ()
178- .setMessage ("Tcp server bad command" )
179- .addData ("name" , _sink .getName ())
180- .log ();
160+ requester .tell (response , getSelf ());
161+ });
162+ } else {
163+ LOGGER .warn ()
164+ .setMessage ("Tcp server cannot unbind; no connection" )
165+ .addData ("sender" , getSender ())
166+ .addData ("name" , _sink .getName ())
167+ .log ();
168+ requester .tell (new Tcp .Unbound$ (), getSelf ());
169+ }
170+ }
181171
182- getContext (). stop ( getSelf ());
183- })
184- . match ( Tcp . Connected . class , tcpConnected -> {
185- LOGGER . debug ( )
186- . setMessage ( "Tcp connection established" )
187- .addData ("name " , _sink . getName () )
188- .addData ("remoteAddress " , tcpConnected . remoteAddress ().getAddress ().getHostAddress ())
189- .addData ("remotePort " , tcpConnected . remoteAddress ().getPort ())
190- .log ();
172+ private void socketBound ( final Tcp . Bound tcpBound ) {
173+ _connectionActor = getSender ();
174+ LOGGER . info ()
175+ . setMessage ( "Tcp server binding complete" )
176+ . addData ( "name" , _sink . getName () )
177+ .addData ("connectionActor " , _connectionActor )
178+ .addData ("address " , tcpBound . localAddress ().getAddress ().getHostAddress ())
179+ .addData ("port " , tcpBound . localAddress ().getPort ())
180+ .log ();
191181
192- final ActorRef handler = createHandler (_sink , tcpConnected );
193- getSender ().tell (TcpMessage .register (handler ), getSelf ());
194- })
195- .build ();
182+ _isReady = true ;
183+ }
184+
185+ private void commandFailed (final Tcp .CommandFailed failure ) {
186+ LOGGER .warn ()
187+ .setMessage ("Tcp server bad command" )
188+ .addData ("name" , _sink .getName ())
189+ .setThrowable (failure .cause ().getOrElse (null ))
190+ .log ();
191+
192+ getContext ().stop (getSelf ());
193+ }
194+
195+ private void connected (final Tcp .Connected tcpConnected ) {
196+ LOGGER .debug ()
197+ .setMessage ("Tcp connection established" )
198+ .addData ("name" , _sink .getName ())
199+ .addData ("remoteAddress" , tcpConnected .remoteAddress ().getAddress ().getHostAddress ())
200+ .addData ("remotePort" , tcpConnected .remoteAddress ().getPort ())
201+ .log ();
202+
203+ final ActorRef handler = createHandler (_sink , tcpConnected );
204+ getSender ().tell (TcpMessage .register (handler ), getSelf ());
196205 }
197206
198207 /**
0 commit comments