Verifies the integrety of the projects, as builds are executed immediately after a code change was detected. This plan provides no artifiacts (use a nightly build instead).
OF-2566: Revoke workaround for OF-2473
With the refactoring of the websocket implementation in the previous commit, the workaround that addressed the threading issue (OF-2473) does no longer seem to be needed. I've executed the Tsung-based reproduction from that issue on the new code repeatedly, without reproducing the issue. This commit removes the work-around.
OF-2566: Refactor WebSockets to reinstate Stream Management
With OF-963, the 'resume' feature of Stream Management (XEP-0198) was disabled, as it was buggy. The purpose of this commit is to reinstate this feature.
To do this, the implementation of WebSockets has been refactored to more closely resemble the implementation of the standard (socket/NIO-based) client
connection handling. It does so by introducing a `WebSocketClientConnectionHandler` and a `WebSocketClientStanzaHandler` that mimics the application of
`ClientConnectionHandler` and `ClientStanzaHandler` respectively, used for NIO/TCP sockets.
The motivation to make the WebSocket handling more similar to that of NIO/TCP sockets is two-fold:
- the latter is does not suffer from the Stream Management issue - it apparently does something better.
- maintenance of the code will be simplified, by having the same approach being re-used.
Refactor StanzaHandler: introduce StreamErrorException
When validating a stream that is being set up, using a dedicated Exception instead of booleans will improve readability of the code, and will make it easier to extend the class.
This commit introduces a StreamErrorException and uses that when validating a new stream.
No functional changes are intended to be introduced by this commit.