@@ -88,29 +88,30 @@ public LogbookSearchController() {
88
88
* Determines how the client may connect to the remote service. The service info endpoint is called to establish
89
89
* availability of the service. If available, then a single web socket connection is attempted to determine
90
90
* if the service supports web sockets.
91
- * @param completionHandler {@link Runnable } called when connection mode has been determined.
91
+ * @param consumer {@link Consumer } called when the connectivity mode has been determined.
92
92
*/
93
- protected void determineConnectivity (Runnable completionHandler ){
93
+ protected void determineConnectivity (Consumer < ConnectivityMode > consumer ){
94
94
95
95
// Try to determine the connection mode: is the remote service available at all?
96
96
// If so, does it accept web socket connections?
97
97
JobManager .schedule ("Connection mode probe" , monitor -> {
98
+ ConnectivityMode connectivityMode = ConnectivityMode .NOT_CONNECTED ;
98
99
String serviceInfo = client .serviceInfo ();
99
100
if (serviceInfo != null && !serviceInfo .isEmpty ()) { // service online, check web socket availability
100
101
if (WebSocketClientService .checkAvailability (this .webSocketConnectUrl )) {
101
- connectivityModeObjectProperty . set ( ConnectivityMode .WEB_SOCKETS_SUPPORTED ) ;
102
+ connectivityMode = ConnectivityMode .WEB_SOCKETS_SUPPORTED ;
102
103
} else {
103
- connectivityModeObjectProperty . set ( ConnectivityMode .HTTP_ONLY ) ;
104
+ connectivityMode = ConnectivityMode .HTTP_ONLY ;
104
105
}
105
106
}
106
107
connectivityCheckerCountDownLatch .countDown ();
107
- if (connectivityModeObjectProperty .get ().equals (ConnectivityMode .NOT_CONNECTED )) {
108
+ consumer .accept (connectivityMode );
109
+ if (connectivityMode .equals (ConnectivityMode .NOT_CONNECTED )) {
108
110
Platform .runLater (() -> {
109
111
errorPane .visibleProperty ().set (true );
110
112
viewSearchPane .visibleProperty ().set (false );
111
113
});
112
114
}
113
- completionHandler .run ();
114
115
});
115
116
}
116
117
@@ -180,7 +181,7 @@ public void shutdown() {
180
181
webSocketClientService .removeWebSocketMessageHandler (this );
181
182
webSocketClientService .shutdown ();
182
183
}
183
- if (connectivityModeObjectProperty .get ().equals (ConnectivityMode .HTTP_ONLY )){
184
+ else if (connectivityModeObjectProperty .get ().equals (ConnectivityMode .HTTP_ONLY )){
184
185
cancelPeriodSearch ();
185
186
}
186
187
}
0 commit comments