INT-3882: StompSession Reconnection Logic

JIRA: https://jira.spring.io/browse/INT-3882

Add reconnect support for the StompSession:
* Introduce `recoveryInterval` for the `AbstractStompSessionManager`
* Add reconnect scheduled task
* Add handling of the `ConnectionLostException` into the `AbstractStompSessionManager`,
as well as for the `StompInboundChannelAdapter` and `StompMessageHandler`
* Cover adapters reconnection feature with tests
* Documentation polishing

Rework logic according PR comments

* Make `StompMessageHandler` as a "lazy-load" for the connection
* Add "direct" connect interaction for the `AbstractStompSessionManager`
* Polishing tests

Polishing

Fix `StompAdaptersParserTests#testStompSessionManagerReconnect()` to use "fake" server port

Address PR comments

The further polishing

Some further polishing

* `AbstractStompSessionManager`: `reconnectFuture.cancel(true)` on each `scheduleReconnect()` to avoid something like "DDoS attack"
* Add reconnect feature test for the `StompInboundChannelAdapterWebSocketIntegrationTests`, closing and then refreshing again the `serverContext`
This commit is contained in:
Artem Bilan
2015-11-07 23:31:56 -05:00
committed by Gary Russell
parent f1bd6e3bac
commit b9730cd183
14 changed files with 426 additions and 77 deletions

View File

@@ -1,4 +1,4 @@
# Tooling related information for the integration MqttAdapter namespace
http\://www.springframework.org/schema/integration/mqttadapter@name=integration MqttAdapter Namespace
http\://www.springframework.org/schema/integration/mqttadapter@prefix=int-mqttadapter
http\://www.springframework.org/schema/integration/mqttadapter@icon=org/springframework/integration/config/xml/spring-integration-mqttadapter.gif
# Tooling related information for the integration mqtt namespace
http\://www.springframework.org/schema/integration/mqttadapter@name=integration mqtt Namespace
http\://www.springframework.org/schema/integration/mqttadapter@prefix=int-mqtt
http\://www.springframework.org/schema/integration/mqttadapter@icon=org/springframework/integration/config/xml/spring-integration-mqtt.gif