@@ -120,79 +120,88 @@ public void preStart() {
120
120
public Receive createReceive () {
121
121
return receiveBuilder ()
122
122
.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
+ }
152
129
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 ();
173
159
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
+ }
181
171
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 ();
191
181
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 ());
196
205
}
197
206
198
207
/**
0 commit comments