Skip to content

Latest commit

 

History

History
1260 lines (799 loc) · 76.2 KB

CHANGELOG.md

File metadata and controls

1260 lines (799 loc) · 76.2 KB

Change Log

Full Changelog

Fixed bugs:

  • Fix HttpRequest & HttpRetry timeouts #310

Full Changelog

Closed issues:

  • Push Notification corner cases #993
  • Protocol-v2: readd recoveryKey to make this a non-breaking change #868

Merged pull requests:

  • [ECO-4706] fix: push notifications corner cases #994 (ttypic)

Full Changelog

Closed issues:

  • Enable and fix tests in RealtimePresenceTest #869

Merged pull requests:

  • Fix presence / ignored presence tests #989 (sacOO7)

Full Changelog

Fixed bugs:

  • Should send DETACH after receiving ATTACHED while in the DETACHING or DETACHED state (RTL5k) #846

Closed issues:

  • LocalDevice reset will cause ClassCastException #985
  • Implement no-connection-serial #981
  • DeviceSecret key is required by protocol v2.0 #845

Merged pull requests:

Full Changelog

Closed issues:

  • Throw exception on released Ably Channel methods #971

Merged pull requests:

  • fix: prevent reattaching of detached channels #977 (ttypic)
  • feat: throw exception when trying to attach on released channel #973 (ttypic)
  • fix: deviceId and deviceToken consistence #972 (ttypic)

Full Changelog

Fixed bugs:

  • Create Cipher instance in place, do not store it in ChannelOptions #969
  • Late Disconnection #937

Closed issues:

  • Stack traces not being sent to error logs #963

Full Changelog

Fixed bugs:

  • Update error code for channel attachment timed out #959
  • Update error code for message decoding failure #958
  • Fix incremental backoff while reconnecting #954
  • Add suspendedRetryTimeout and httpMaxRetryDuration client options #956

Merged pull requests:

  • fix: use appropriate error code for channel attachment timeout #961 (AndyTWF)
  • fix: use error code 40013 for message decoding failures #960 (AndyTWF)
  • Fix incremental backoff jitter #955 (sacOO7)
  • Add missing clientOptions #957 (sacOO7)

Full Changelog

Fixed bugs:

  • Connection manager switches to fallback hosts on close #950

Merged pull requests:

  • fix: fallback hosts always being used on transport error #951 (AndyTWF)

Full Changelog

Fixed bugs:

  • RTN23a: Transport not disconnecting after TTL passed #932

Merged pull requests:

  • fix: transport not disconnecting after ttl passed #939 (AndyTWF)
  • fix(ConnectionManager): don't check state before sending close message #938 (owenpearson)

Full Changelog

Fixed bugs:

  • Realtime with authUrl with token in query string fails to connect #935

Full Changelog

Fixed bugs:

  • equals() for TokenDetails is broken #926
  • Long-lived connections are immediately transitioned to SUSPENDED after disconnection #925

Merged pull requests:

  • Suspend timer is set when transport is unavailable and last state was connected #928 (AndyTWF)
  • Fix equals() on token details #927 (ikbalkaya)

Full Changelog

Fixed bugs:

  • Provide an error code and error message for failed queued messages #920

Merged pull requests:

  • Add reason to pending message instead of creating an ErrorInfo #922 (ikbalkaya)

Full Changelog

Fixed bugs:

  • Released channel re-added to the channel map after DETACHED message #913

Merged pull requests:

Full Changelog

Fixed bugs:

  • Presence messages superseded whilst channel in attaching state #908
  • A failed resume incorrectly retries queued messages prior to reattachment #905
  • Pending messages are not failed when transitioning to suspended #904

Merged pull requests:

Full Changelog

Fixed bugs:

  • Re-attach fails due to previous detach request #885
  • Lib is not re-sending pending messages on new transport after a resume #474

Merged pull requests:

Full Changelog

Merged pull requests:

Full Changelog

Fixed bugs:

  • Presence.endSync throws NullPointerException when processing a message #853

Merged pull requests:

  • added null check to prevent NullPointerExceptions #873 (davyskiba)

Full Changelog

Sorry for the release noise, but the big fix we thought we had made in 1.2.19 turned out not to fix the problem...

Second Attempt at Bug Fix: Automatic presence re-enter after network connection is back does not work #857 in Revert to protocol 1.0 #864 (QuintinWillison)

Full Changelog

Implemented enhancements:

Fixed bugs:

  • Automatic presence re-enter after network connection is back does not work #857 in Revert to protocol 1.1 #858 (KacperKluka)

Full Changelog

This release improves our Javadoc API commentaries for this SDK. Other than that, there are no functional changes (features, bug fixes, etc..).

Full Changelog

Fixed bugs:

  • RSA4d is not implemented correctly #829
  • JSONUtilsObject.add() silently discards data of unsupported type #501

Merged pull requests:

  • Fail Ably connection if auth callback throws specific errors #834 (KacperKluka)

Full Changelog

In this release, we have fixed a bug that was introduced in 1.2.15 that caused the SDK to return early from the Auth#renewAuth method.

  • call waiter.close() after breaking from while loop #825 (ikbalkaya)

Full Changelog

In this release we have added a new method that provides a completion handler for renewing an authentication token. We also updated the documentation to clarify the thread policy for public method callbacks.

  • A new renewAuth method was added to Auth and the renew method was deprecated

Implemented enhancements:

Fixed bugs:

  • Early return from onAuthUpdated creates issues #814

Closed issues:

  • Invalid method implementation in README #819
  • Document which thread is whole SDK or callbacks using #800

Merged pull requests:

  • Update onChannelStateChanged readme with current implementation #820 (qsdigor)
  • Document thread policy for callbacks and add missing documentation for callbacks #818 (qsdigor)

Full Changelog

We've made some changes to JDK and Android API Level minimum requirements in this release, which might cause problems for those with very old build toolchains, or application projects with really permissive minimum runtime requirements:

  • Java source and target compatibility level increased from 1.7 to 1.8
  • Android minimum SDK API Level increased from 16 to 19 (4.4 KitKat)

We've also fixed an oversight in our REST support whereby it previously was not possible to fully release resources consumed by the background thread pool used for HTTP operations, neither explicitly nor passively via GC. This was most noticeably a problem for applications which created several client instances during the lifespan of their application process.

Fixed bugs:

  • NoSuchMethodError in ably-android for API lower than 24 #802, fixed by #808 (KacperKluka)
  • Threads remain in parked (waiting) state indefinitely when AblyRest instance is freed #801, addressed by adding finalize() and AutoCloseable support to AblyRest instances #807 (QuintinWillison)
  • Minimum API Level supported for Android is 19 (KitKat, v.4.4) #804 (QuintinWillison)

Merged pull requests:

Full Changelog

Closed issues:

  • Update dependency: com.google.code.gson:gson #777
  • Update dependency: org.java-websocket:Java-WebSocket #776

Full Changelog

Fixed bugs:

  • Cannot automatically re-enter channel due to mismatched connectionId #761
  • Ensure that weak SSL/TLS protocols are not used #749

Full Changelog

Fixed bugs:

Other merged pull requests:

Full Changelog

Fixed bugs:

  • Using Firebase installation ID as registration token: Users cannot reactivate the device after deactivating #715

Merged pull requests:

  • Fix: Use FirebaseMessaging\#getToken\(\) to get registration token #717 (ben-xD)

Full Changelog

Fixed bugs:

  • IllegalArgumentException: No enum constant io.ably.lib.http.HttpAuth.Type.BASİC #711
  • ProGuard warnings emitted by Android build against 1.1.6 #529

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Update Stats fields with latest MessageTraffic types #394
  • Replace ULID with Android's UUID #680

Fixed bugs:

  • Push Activation State Machine exception handling needs improvement #685
  • WebsocketNotConnectedException on send #430

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Implement RSC7d (Ably-Agent header) #665
  • Conform toString() implementations #631

Fixed bugs:

  • Remove use of forClass method in push activation state machine implementation #686
  • Race condition releasing short lived channels #570
  • Using a clientId should no longer be forcing token auth in the 1.1 spec #473
  • Ensure correct feedback to developer when malformed key is supplied #382

Closed issues:

  • Fail connection immediately if authorize() called and 403 returned #620
  • FCM getToken method is deprecated #597
  • Support for encryption of shared preferences #593
  • RSC7c TI1 addRequestIds on ClientOptions and requestId on ErrorInfo #574

Merged pull requests:

Full Changelog

Fixed bug: channel presence members #669 (sacOO7)
An issue affecting only users calling get(boolean wait) on Presence with wait set to true.

Full Changelog

Fixed bugs:

  • Crypto.getRandomMessageId isn't working as intended #654
  • Hosts class is not thread safe #650
  • AblyBase.InternalChannels is not thread-safe #649

Merged pull requests:

Full Changelog

Fixed bugs:

  • Many instances of ConnectionWaiter spawned while app is running, with authentication token flow #651
  • capability tokendetails adds to HTTP Request as a query parameter #647
  • ClientOptions idempotentRestPublishing default may be wrong #590
  • Presence blocking get sometimes has missing members #467
  • Remove empty capability query parameter #648 (vzhikserg)
  • Add unit test for idempotentRestPublishing in ClientOptions #636 (vzhikserg)
  • Fix Member Presence #607 (sacOO7)

Merged pull requests:

Full Changelog

Enhancements and Bug Fixes:

Code Quality Improvements:

v1.2.2 (2020-09-17)

Full Changelog

Fixed bugs:

  • Restoral of ActivationStateMachine events fails because not all event types have a no-argument constructor #598 fixed by:
    • Discard persisted events with non-nullary constructors #599 (tcard)
  • Fatal Exception on API level below 19 #596 fixed by:

Other merged pull requests:

v1.2.1 (2020-06-15)

Full Changelog

Fixed bugs:

  • Address impact of change to interface on extras field on Message #580

Merged pull requests:

v1.2.0 (2020-06-08)

Adds the capability to subscribe to a channel in delta mode.

Subscribing to a channel in delta mode enables delta compression. This is a way for a client to subscribe to a channel so that message payloads sent contain only the difference (ie the delta) between the present message and the previous message on the channel.

Full Changelog

v1.1.11 (2020-05-18)

Full Changelog

Merged pull requests:

  • Push Activation State Machine: validate an already-registered device on activation #543 (paddybyers)

v1.1.10 (2020-03-04)

Full Changelog

Implemented enhancements:

Closed issues:

  • Avoid message bundling, conforming to updated RTL6d #548

v1.1.9 (2020-03-03)

Full Changelog

Implemented enhancements:

  • Upload to Maven Central #505
  • Maven deployment: add task for deploy to staging #560 (paddybyers)

Fixed bugs:

  • ConnectionManager.checkConnectivity() fails every time for Android 9 #541
  • ably-java sometimes failing to decrypt Messages #531
  • Channels visibility improvements #558 (QuintinWillison)
  • ConnectionManager: use HTTPS for the internet-up check #542 (paddybyers)

Closed issues:

  • Remove develop branch #547

Merged pull requests:

  • Get AndroidPushTest to pass again #553 (tcard)
  • Fix reference to param that wasn't updated when param name changed. #552 (tcard)

Full Changelog

Fixed bugs:

  • Rework and reinstate invalid ConnectionManager tests #524
  • After loss of connectivity, and transport closure due to timeout, the ConnectionManager still thinks the transport is active #495

Merged pull requests:

Note: this release reverts the changes in 1.1.6 due to regressions in that release, and is functionally identical to 1.1.5.

Full Changelog

Fixed bugs:

  • Unexpected exception in WsClient causing connection errors #519
  • bad rsv 4 error from WebsocketClient if transport is forced to close during handshake #503
  • fromCipherKey does not match spec #492

Closed issues:

  • HttpScheduler.AsyncRequest<T> Ignores withCredentials Parameter #517
  • AblyRealtime should implement Autocloseable #514

Merged pull requests:

Full Changelog

Fixed bugs:

  • WebSocketTransport: don't null the wsConnection in onClose() #500 (paddybyers)

Full Changelog

Merged pull requests:

Full Changelog

Merged pull requests:

Full Changelog

Implemented enhancements:

  • ConnectionManager: ensure that cached token details are cleared on any connection error #487 (paddybyers)
  • Add interactive test notes to the README #486

Fixed bugs:

  • Push problems with push-subscribe permission #484
  • Push: LocaDevice.deviceSecret serialisation issue #480
  • Push: LocalDevice.reset() doesn't clear persisted device state #478
  • PUSH_ACTIVATE intent broadcast is not always sent when activating push #477
  • Stop using deprecated FirebaseInstanceIdService #475
  • Expired token never renewed #470
  • Presence: fix a couple test regressions #490 (paddybyers)

Closed issues:

  • Add RTN20 support - react to operating system network connectivity events #415
  • Exceptions when attempting to send with null WsClient #447

Merged pull requests:

v1.1.1 (2019-04-10)

Full Changelog

Merged pull requests:

  • NetworkConnectivity: ensure all accesses to listeners set are synchronised #469 (paddybyers)
  • Truncated firebase ID (registration token) logging #466 (amsurana)
  • Auth RSA4b1 spec update: conditional token validity check #463 (paddybyers)
  • Add some notes about log options #461 (paddybyers)
  • Feature matrix linked from README #458 (Srushtika)

Implemented enhancements:

  • Improve handling of clock skew #462

Closed issues:

  • ConcurrentModificationException in 1.1 when running multiple library instances #468

Full Changelog

Implemented enhancements:

  • Android push implementation #308

v1.0.12 (2019-02-13)

Full Changelog

Merged pull requests:

Full Changelog

Fixed bugs:

  • InternalError when attempting to create a reattach timer #452
  • Realtime Channel: exceptions thrown when attempting attach do not result in the client listener being called #448

Closed issues:

  • ConcurrentModificationException in 1.0 #321

Merged pull requests:

  • Make the Channels collection a ConcurrentHashMap to permit mutation o… #454 (paddybyers)
  • Wrap construction of Timer instances to handle exceptions … #453 (paddybyers)
  • Attach exception handling #449 (paddybyers)

Full Changelog

Implemented enhancements:

  • Add support for remembered REST fallback host #431
  • Update idempotent REST according to spec #413

Closed issues:

  • EventEmitter: mutations of listeners within a listener callback shouldn't crash #424

Merged pull requests:

v1.0.9 (2018-12-11)

Full Changelog

Closed issues:

  • Idempotent publishing is not enabled in the upcoming 1.1 release #438

Merged pull requests:

v1.0.8 (2018-11-03)

Full Changelog

Implemented enhancements:

  • Ensure request method accepts UPDATE, PATCH & DELETE verbs #416

Closed issues:

  • Error in release mode due to missing proguard exclusion #427
  • Exception when failing to decode a message with unexpected payload type #425
  • Recover resume not working #423

Merged pull requests:

v1.0.7 (2018-08-16)

Full Changelog

Closed issues:

  • IllegalStateException scheduling transport activity timer #418

Merged pull requests:

  • Handle exceptions in activity timer task, and when attempting to reschedule the timer #419 (paddybyers)

Full Changelog

Fixed bugs:

  • ably-java gets into a channel attach retry loop #410

Merged pull requests:

  • RTL13b: ensure that detached+error responses form the server do not result in a busy loop of attach requests #411 (paddybyers)

Full Changelog

Fixed bugs:

  • Async HTTP thread pool issues #405

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Add support for JWT #384
  • Allow to specify a message id when publishing a message with REST #396 (paddybyers)

Closed issues:

  • Maven devpendency failed #383

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Document supported platforms #363

Fixed bugs:

  • Received messages have no event names #366
  • Tests failing because of "no output in the last 10m" #330

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Implement AblyRealtime.connect() #305
  • Auth header included in HTTP requests #166
  • autoConnect & useTokenAuth #27
  • authParams & authMethod ClientOptions #25

Fixed bugs:

  • When using token auth with client-side signing, renewing a token is broken #350
  • Remove calls to System.xxx.println() #217
  • Race condition when lib is closed soon after being instantiated #319
  • Crash inside a library #309
  • Android System.out: (ERROR): io.ably.lib.transport.WebSocketTransport: No activity for 25000ms, closing connection #306
  • RSC19 is not implemented according to the spec in 0.9 #278
  • Invalid binary error message #247

Merged pull requests:

  • Fix connectionmgr regressions #368 (paddybyers)
  • Avoid depending on reference equality of interned strings and literals; this seems to fail sometimes on Android #367 (paddybyers)
  • Update to latest gradle and tools plugins #362 (paddybyers)
  • Auth.assertValidToken: always remove old token when force == true. #354 (tcard)
  • Omit TTL in TokenRequest as JSON if unset. #353 (tcard)
  • Add ability to generalize over a HTTP request being async or not. #347 (tcard)
  • Implement and add test for AblyRealtime.connect() #345 (paddybyers)
  • Connectionmgr sync transport #344 (paddybyers)
  • Fix issue where a close() would not abort an existing in-progress connection #343 (paddybyers)
  • New test RealtimeResumeTest.resume_none #204 (trenouf)

Full Changelog

Implemented enhancements:

  • Allow custom transportParams #327

Fixed bugs:

  • authHeaders are being included in requests to non authUrl endpoints #331
  • 1.0.0 sending v=0.9 #324
  • 1.0 not automatically re-authing when token expires if initialized with key + clientId? #322

Closed issues:

  • UTF-8 / ASCII detection issue in compile #334
  • Allow authUrl to contain querystring params #328
  • Dependency management for ably-android #316
  • Exceptions thrown in client onMessage callbacks are silently swallowed #314

Merged pull requests:

  • Spec RTC1f: implement support for ClientOptions.transportParams #342 (paddybyers)
  • Implement spec for handling of queryParams in authURL #340 (paddybyers)
  • Preemptive HTTP authentication #339 (paddybyers)
  • Rest token renewal fix + tests #338 (paddybyers)
  • Don't send authHeaders or authParams in calls to requestToken #337 (paddybyers)
  • Replace StandardCharset.UTF-8 with Charset.forName(“UTF-8”) #333 (liuzhen2008)
  • Crypto default 256 bit length like all other libraries #329 (mattheworiordan)
  • Add log message if a client's listener throws an exception whilst handling a message #318 (paddybyers)

Full Changelog

Implemented enhancements:

This is the first release of the 1.0 client library specification, which contains many extensions and fixes over the 0.8 specification.

For further details, see a summary of the changes in the 1.0 API.

Full Changelog

Implemented enhancements:

  • Remove deprecated ProtocolMessage#connectionKey #262
  • Add Proguard support #223

Closed issues:

  • Add proguard warning for org.msgpack.core.buffer.** #279
  • Add support for ConnectionDetails.connectionStateTtl #267
  • Msgpack truncates data member #261

Merged pull requests:

  • Remove proguard warnings for missing dependencies of msgpack library #281 (paddybyers)
  • Update workaround for Android msgpack bugs #269 (paddybyers)

v0.8.9 (2017-01-01)

Full Changelog

Fixed bugs:

  • Msgpack truncates data member #261

Full Changelog

Fixed bugs:

  • Fix bug causing infinite loop if exception thrown in Transport.send()
  • Bump msgpack-core dependency to 0.8.11

Full Changelog

Fixed bugs:

  • Transport state change events suppressed after loss of network #233

Merged pull requests:

  • Fixed issue 233, made changes to allow ITransport mocking #236 (psolstice)

Full Changelog

Merged pull requests:

Full Changelog

Implemented enhancements:

  • Add reauth capability #129
  • Remove unused HexDump file #81
  • Final 0.8 spec updates #53
  • HAS_BACKLOG flag #6

Fixed bugs:

  • ConnectionManager.failQueuedMessages() does not remove messages once the callback is called #222
  • ConnectionManager.setSuspendTime() isn't called when a transport disconnects #220

Closed issues:

  • "Trust anchor for certification path not found" exception on android #197
  • travis jdk7 build gets buffer overflow fault #191
  • never valid to provide both a restHost and environment value #187
  • fallback problems #178
  • Complete Android build work #148
  • Add shutdown hook to close a connection when the VM exits #71
  • AuthOptions constructor is not unambiguous #62

Merged pull requests:

v0.8.4 (2016-10-07)

Full Changelog

Fixed bugs:

  • Connect whilst suspended does not appear to be connecting immediately #167
  • Prep for 0.9 spec #145

Closed issues:

  • RSC11: Environment option #160
  • ably-java 0..8.3 release isn't available on jcenter #155

Merged pull requests:

  • issues/170: Fixed message serial out of sync after recover #175 (trenouf)
  • heartbeat support #173 (trenouf)
  • tpr/issue167: Fixed explicit connect after connection has disconnected #172 (trenouf)

v0.8.3 (2016-08-25)

Full Changelog

Implemented enhancements:

  • README not complete #88
  • authCallback must accept TokenDetails or token strings #34
  • PaginatedResult#isLast method missing #33

Fixed bugs:

  • A post-suspend clean connection removes all channels instead of moving them to DETACHED #133
  • Reauthentication on external URLs #92
  • Attach CompletionListener #84
  • Implicit attach on Publish or Subscribe #45

Closed issues:

  • Library doesn't seem to serialise Map objects properly #112
  • Host ClientOptions #22

Merged pull requests:

v0.8.2 (2016-03-14)

Full Changelog

Implemented enhancements:

  • Lower case PresenceMessage.Action enum #90
  • Switch arity of auth methods #44
  • Realtime Presence and Channel untilAttach functionality is missing #36
  • Proposal: errorReason instead of reason #30
  • Presence subscribe with presence action #21
  • Message publish overloaded without a listener #17
  • Emit errors #16
  • README to include code examples and follow common format #15

Fixed bugs:

  • force is an attribute of AuthOptions, not an argument #103
  • Lower case PresenceMessage.Action enum #90
  • Presence enter, update, leave methods need to be overloaded #89
  • Message constructor is inconsistent #87
  • Channel state should be initialized not initialised for consistency #85
  • Unsubscribe all and off all is missing #83
  • Presence data assumed to be a string, Map not supported #75
  • Host fallback for REST #54
  • Switch arity of auth methods #44
  • NullPointerException: Attempt to invoke interface method 'java.lang.String java.security.Principal.getName()' on a null object reference #41
  • Unable to deploy client lib in Android Studio project on OSX #39
  • Realtime Presence and Channel untilAttach functionality is missing #36
  • Java logLevel #26
  • Timeout in test suite #24
  • Presence subscribe with presence action #21

Closed issues:

  • Fix missing JCE dependency on Travis #69
  • Remove eclipse artifact #68
  • Typo on Presence#history javadoc #63
  • Spec validation #23

Merged pull requests:

v0.8.1 (2016-01-01)

Full Changelog

Implemented enhancements:

  • Travis.CI support #4

Fixed bugs:

  • Gradle build should be able to build library without Android SDK installed #46
  • Token authentication "Request mac doesn't match" #40
  • Re-enable temporarily disabled test #31
  • Travis.CI support #4
  • Key length case and ably common #35 (mattheworiordan)

Closed issues:

  • Re-enable temporarily disabled test #32
  • Additional encoding / decoding tests #1

Merged pull requests:

v0.8.0 (2015-05-07)

Implemented enhancements:

  • EventEmitter interface #11
  • Change pagination API #10
  • Stats types are out of date #7

Fixed bugs:

  • CipherParams type #12
  • Change pagination API #10
  • Stats types are out of date #7

Closed issues:

  • Builds are not failing with the correct exit code #5

Merged pull requests:

* This Change Log was automatically generated by github_changelog_generator