Skip to content

Changes

Summary

  1. Moves configuration of websocket to initiateConnection (details)
  2. Implement Retry logic to use for initial connect and reconnect (details)
  3. Replace fix configurable time to wait before retrying with fibonacci increment (details)
  4. Use ScheduledExecutorService to avoid StackOverflowException because of (details)
  5. Make #withExecutor no longer optional to configure for retry builder (details)
Commit 05928011916586b362dc70f9cf95141c614f41a9 by Yannic Klem
Moves configuration of websocket to initiateConnection

* During reconnect we use WebSocket#recreate which, according to the
  javadoc, causes the WebSocket losing all configurations done to the
  "raw socket". Only the configuration of the factory is kept.

Signed-off-by: Yannic Klem <yannic.klem@bosch.io>
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/WebSocketMessagingProvider.java (diff)
Commit b1afafaa877478f7c9448404759d4158ebedd071 by Yannic Klem
Implement Retry logic to use for initial connect and reconnect

Signed-off-by: Yannic Klem <yannic.klem@bosch.io>
The file was addedjava/src/main/java/org/eclipse/ditto/client/messaging/internal/Retry.java
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/WebSocketMessagingProvider.java (diff)
The file was addedjava/src/test/java/org/eclipse/ditto/client/messaging/internal/RetryTest.java
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/MessagingException.java (diff)
Commit fae4b73fc169b5936843d854e00dcb9dd59c8fc3 by Yannic Klem
Replace fix configurable time to wait before retrying with fibonacci increment

* Maximum time to wait between retries is capped to 13 seconds, Minimum is 1

Signed-off-by: Yannic Klem <yannic.klem@bosch.io>
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/Retry.java (diff)
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/WebSocketMessagingProvider.java (diff)
Commit edce2a80aca6341dc845a397623d32c192ef1cdf by Yannic Klem
Use ScheduledExecutorService to avoid StackOverflowException because of
recursion and avoid interrupting threads.

Signed-off-by: Yannic Klem <yannic.klem@bosch.io>
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/WebSocketMessagingProvider.java (diff)
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/Retry.java (diff)
Commit f05d652fef51900bb44cc347ccdc58a0a07fe515 by Yannic Klem
Make #withExecutor no longer optional to configure for retry builder

Signed-off-by: Yannic Klem <yannic.klem@bosch.io>
The file was modified java/src/test/java/org/eclipse/ditto/client/messaging/internal/RetryTest.java (diff)
The file was modified java/src/main/java/org/eclipse/ditto/client/messaging/internal/Retry.java (diff)