Fixed bugs:
- Java SDK - Duplicate messages on rewind after 1.2.34 #1050
Implemented enhancements:
- New experimental
Message
fields (action
,serial
,createdAt
) have been added. Note: These fields are not stable and are introduced to support the Chat SDK. Use with caution, as they may change in future releases.
Merged pull requests:
Closed issues:
- [RTL5] Incomplete spec implementation for channel DETACH/ATTACH #1045
- [RTL7h] Throw exception for optional callback #1040
Merged pull requests:
Fixed bugs:
- Race condition when calling
AblyRealtime#connect()
on terminated state #1041
Implemented enhancements:
- Expand proxy support: Authenticated Proxy and Websockets (
HTTP CONNECT
tunnel) #120
Merged pull requests:
- feat: introduced retry rules for flaky android push tests #1036 (ttypic)
- feat: OkHttp implementation for making HTTP calls and WebSocket connections #1035 (ttypic)
- chore: update gradle wrapper #1034 (ttypic)
Implemented enhancements:
- Implement the
attachOnSubscribe
channel option (TB4) #1027
Merged pull requests:
- Fix implicit attach on subscribe #1028 (sacOO7)
- ci: enable workflow_dispatch #1025 (owenpearson)
- tests: Assert connection error code rather than message #1023 (lmars)
Closed issues:
- For REST clients, all requests should include an
X-Ably-ClientId
header when basic auth is to be used (RSA7e2) #1015
Merged pull requests:
- chore(Auth): get rid of unnecessary padding removal for Auth tokens #1021 (ttypic)
- feat: add Google SDK console verification #1020 (ttypic)
- feat: include
X-Ably-ClientId
for each request (RSA7e2) #1019 (ttypic)
Fixed bugs:
- Connection remains open when close is sent immediately #1012
Merged pull requests:
- [ECO-4820] fix(ConnectionManager): update the connection close implementation to follow RTN12f #1013 (ttypic)
Fixed bugs:
- onMessage Exception #1009
- NullPointerException When Attempting to read from field 'java.lang.String io.ably.lib.types.ErrorInfo.message' #995
Fixed bugs:
- v1.2.34-v1.2.37 are incompatible with Android API versions < 24 #1004
- REST client not attempting fallback hosts upon
httpOpenTimeout
expiry #997
Closed issues:
Fixed bugs:
- Fix HttpRequest & HttpRetry timeouts #310
Closed issues:
- Push Notification corner cases #993
- Protocol-v2: readd recoveryKey to make this a non-breaking change #868
Merged pull requests:
Closed issues:
- Enable and fix tests in RealtimePresenceTest #869
Merged pull requests:
Fixed bugs:
- Should send
DETACH
after receivingATTACHED
while in theDETACHING
orDETACHED
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:
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)
Fixed bugs:
Closed issues:
- Stack traces not being sent to error logs #963
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
andhttpMaxRetryDuration
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)
Fixed bugs:
- Connection manager switches to fallback hosts on close #950
Merged pull requests:
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)
Fixed bugs:
- Realtime with authUrl with token in query string fails to connect #935
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)
Fixed bugs:
- Provide an error code and error message for failed queued messages #920
Merged pull requests:
Fixed bugs:
- Released channel re-added to the channel map after DETACHED message #913
Merged pull requests:
- Drop messages where channel does not exist #914 (AndyTWF)
- Improve
1.2
-series Release Process #912 (QuintinWillison) - Fix link formatting in changelog #911 (AndyTWF)
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:
- Presence message superseded #909 (AndyTWF)
- Improvements on connection resume failure #906 (ikbalkaya)
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:
- Connection resumption improvements #900 (ikbalkaya)
- Make EventEmitter.on() documentation reflect implementation #889 (AndyTWF)
- Fix attach/detach race condition #887 (ikbalkaya)
Merged pull requests:
- Skip checking WS hostname when not using SSL #883 (cruickshankpg)
Fixed bugs:
- Presence.endSync throws NullPointerException when processing a message #853
Merged pull requests:
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)
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)
This release improves our Javadoc API commentaries for this SDK. Other than that, there are no functional changes (features, bug fixes, etc..).
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)
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.
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 toAuth
and therenew
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)
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 addingfinalize()
andAutoCloseable
support toAblyRest
instances #807 (QuintinWillison) - Minimum API Level supported for Android is 19 (KitKat, v.4.4) #804 (QuintinWillison)
Merged pull requests:
- Increase minimum JRE version to 1.8 #805 (QuintinWillison)
Closed issues:
- Update dependency: com.google.code.gson:gson #777
- Update dependency: org.java-websocket:Java-WebSocket #776
Fixed bugs:
- Cannot automatically re-enter channel due to mismatched connectionId #761
- Ensure that weak SSL/TLS protocols are not used #749
Fixed bugs:
ConcurrentModificationException
whenunsubscribe
thendetach
channel presence listener #743, fixed in #744 (QuintinWillison)IllegalStateException
inCrypto
CBCCipher
'sdecrypt
method #741, fixed in #746 (QuintinWillison)- Incorrect use of locale sensitive String APIs #713, fixed in #722 (martin-morek)
push.listSubscriptionsImpl
method not respecting params #705, fixed in #710 (martin-morek)
Other merged pull requests:
- Fix indentation and typos in authCallback example #724 (QuintinWillison)
Fixed bugs:
- Using Firebase installation ID as registration token: Users cannot reactivate the device after deactivating #715
Merged pull requests:
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:
- Fix incorrect parsing of HTTP auth type for some locales #712 (QuintinWillison)
- Suppressed warning in ProGuard #709 (martin-morek)
Implemented enhancements:
Fixed bugs:
- Push Activation State Machine exception handling needs improvement #685
- WebsocketNotConnectedException on send #430
Merged pull requests:
- Replaced ULID with UUID for deviceID #702 (martin-morek)
- Separate handling WebsocketNotConnectedException #701 (martin-morek)
- Updated Stats fields with the latest MessageTraffic types #698 (martin-morek)
Implemented enhancements:
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:
- Increase minimum SDK version to Android 4.1 (Jelly Bean, API Level 16) #691 (KacperKluka)
- Throws exception when AuthOptions are initialized with an empty string #690 (martin-morek)
- Removed forName method #689 (martin-morek)
- Updated Firebase cloud messaging dependency #687 (martin-morek)
- Unified custom toString() method implementations to use curly bracket… #683 (martin-morek)
- Support for encryption of shared preferences #681 (martin-morek)
- Add request_id query param if addRequestIds is enabled #678 (martin-morek)
- Using a clientId should no longer be forcing token auth #675 (martin-morek)
- Checking if error code is 403 and failing connection #672 (martin-morek)
- Add Ably-Agent header #671 (KacperKluka)
- Changing Capability.addResource() to take varargs as last parameter #664 (Thunderforge)
Fixed bug: channel presence members #669 (sacOO7)
An issue affecting only users calling get(boolean wait)
on Presence
with wait
set to true
.
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:
- Makes the Hosts class safe to be called from any thread #657 (QuintinWillison)
- Fix getRandomMessageId #656 (sacOO7)
- Improve channel map operations in respect of thread-safety #655 (QuintinWillison)
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:
- Unregister ConnectionWaiter listeners once connected #652 (QuintinWillison)
- Update references from 1 -> l to match client spec #646 (natdempk)
- Add workflow status badges #645 (QuintinWillison)
- Add maintainers file #644 (niksilver)
- Add workflows #643 (QuintinWillison)
- Fix CI pipeline #642 (vzhikserg)
- Fix/doc 233 update readme #641 (tbedford)
- Log error message to get clear understanding of exception #632 (sacOO7)
- Refactor MessageExtras #595 (sacOO7)
Enhancements and Bug Fixes:
- Add connectionKey attribute missing from the Message object #630 (vzhikserg), fixing #614
- Improve error messages for channel attach when realtime is not active #627 (vzhikserg), fixing #594
- Add verbose logs in push notification related code #623 (QuintinWillison)
- Defaults: Generate environment fallbacks #618 (vzhikserg), fixing #603
- Rest.publishBatch: support overloaded method that takes params #604 (SimonWoolf)
Code Quality Improvements:
- Refactor unit tests related to hosts and environmental fallbacks #629 (vzhikserg), fixing #628
- Move tests for EventEmitter to unit tests #626 (vzhikserg)
- Adopt more Groovy conventions in Gradle scripts #625 (QuintinWillison)
- Gradle conform and reformat #624 (QuintinWillison)
- Fix param and return javadoc statements #622 (vzhikserg)
- Make Ably version more robust #619 (vzhikserg)
- Remove unnecessary calls to the toString method #617 (vzhikserg)
- Update EditorConfig #616 (QuintinWillison)
- Upgrade Gradle wrapper to version 6.6.1 #615 (QuintinWillison)
- Checkstyle: AvoidStarImport #613 (QuintinWillison)
- Checkstyle: UnusedImports #612 (QuintinWillison)
- Convert tabs to spaces in all Java source files #610 (QuintinWillison)
- Introduce Checkstyle #609 (QuintinWillison)
- Remove redundant public keywords in the interfaces' definitions #608 (vzhikserg)
v1.2.2 (2020-09-17)
Fixed bugs:
- Restoral of ActivationStateMachine events fails because not all event types have a no-argument constructor #598 fixed by:
- Fatal Exception on API level below 19 #596 fixed by:
- Replace use of StandardCharsets #601 (QuintinWillison)
Other merged pull requests:
- Rename master to main #592 (QuintinWillison)
- Bump protocol version to 1.2 #591 (QuintinWillison)
v1.2.1 (2020-06-15)
Fixed bugs:
- Address impact of change to interface on extras field on Message #580
Merged pull requests:
- Support outbound message extras #581 (QuintinWillison)
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.
v1.1.11 (2020-05-18)
Merged pull requests:
- Push Activation State Machine: validate an already-registered device on activation #543 (paddybyers)
v1.1.10 (2020-03-04)
Implemented enhancements:
- Remove capability to bundle messages #567 (QuintinWillison)
Closed issues:
- Avoid message bundling, conforming to updated RTL6d #548
v1.1.9 (2020-03-03)
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)
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:
- Connectionmanager synchronisation refactor #539 (paddybyers)
- RealtimeChannelTest.transient_publish_connected: fix regression… #538 (paddybyers)
- Fix transient pub race #528 (paddybyers)
- [WIP] Fix some ConnectionManager tests #526 (amihaiemil)
Note: this release reverts the changes in 1.1.6 due to regressions in that release, and is functionally identical to 1.1.5.
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:
- Update websocket dependency #520 (paddybyers)
- Fixes in HttpScheduler.AsyncRequest #518 (amihaiemil)
- #514 AblyRealtime implements Autocloseable #515 (amihaiemil)
- ChannelOptions.withCipherKey + tests #513 (amihaiemil)
- Added test for #474 #511 (amihaiemil)
Fixed bugs:
- WebSocketTransport: don't null the wsConnection in onClose() #500 (paddybyers)
Merged pull requests:
- Connectionmanager deadlock fix #497 (paddybyers)
Merged pull requests:
- Push: delete all locally persisted state when deregistering #494 (paddybyers)
- Async callback fix #493 (amsurana)
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:
- README: add a note about the push example/test app #491 (paddybyers)
- Reenable REST publish tests that depend on idempotency #489 (paddybyers)
- Push fixes for 112 #485 (paddybyers)
- Local device reset fix #479 (amsurana)
v1.1.1 (2019-04-10)
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
Implemented enhancements:
- Android push implementation #308
v1.0.12 (2019-02-13)
Merged pull requests:
- Implemented feature Spec - TP4 #451 (amsurana)
- Implemented Spec: TM3, Message.fromEncoded #446 (amsurana)
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)
Implemented enhancements:
Closed issues:
- EventEmitter: mutations of
listeners
within a listener callback shouldn't crash #424
Merged pull requests:
- Implemented RTE6a specification #444 (amsurana)
- Add .editorconfig #443 (paddybyers)
- Add support for bulk rest publish API #439 (paddybyers)
v1.0.9 (2018-12-11)
Closed issues:
- Idempotent publishing is not enabled in the upcoming 1.1 release #438
Merged pull requests:
- Expose msgpack serialisers/deserialisers for Message, PresenceMessage #440 (paddybyers)
- RTL6c: implement transient realtime publishing #436 (paddybyers)
- Implement idempotent REST publishing #435 (paddybyers)
- Add support for ErrorInfo.href (TI4/TI5) #434 (paddybyers)
- RSC15f: implement fallback affinity #433 (paddybyers)
- Pass the environment option into echoserver JWT requests #432 (paddybyers)
v1.0.8 (2018-11-03)
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:
- Proguard: exclude Auth inner classes #428 (paddybyers)
- Handle unexpected data type when decoding a message #426 (paddybyers)
- Update CHANGELOG generation instructions #421 (ORBAT)
v1.0.7 (2018-08-16)
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)
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)
Fixed bugs:
- Async HTTP thread pool issues #405
Merged pull requests:
- Fix problem with the asyncHttp threadpool #408 (paddybyers)
- Exit with a non zero code if any of the two suites (realtime or rest) fails #407 (funkyboy)
- Fix some flaky tests #406 (funkyboy)
- Fix cm thread exit #404 (paddybyers)
- Trigger Travis when a branch name ends with -ci #402 (funkyboy)
- Add fast forward description in release process #401 (funkyboy)
- Improve release description #400 (funkyboy)
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:
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:
- Prevent Travis timeout on Android tests #391 (funkyboy)
- Add connection freshness check #390 (funkyboy)
- Add connectionStateTtl #389 (funkyboy)
- Fix invalid data test #385 (funkyboy)
- Update README with supported platforms #380 (funkyboy)
- Fix creation of ErrorInfo when authCallback is invalid #378 (funkyboy)
- Use exception instead of deprecation notice #376 (funkyboy)
- Add/fix Travis tests #372 (funkyboy)
- Fix android:assembleRelease #370 (paddybyers)
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)
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)
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.
Implemented enhancements:
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)
Fixed bugs:
- Msgpack truncates data member #261
Fixed bugs:
- Fix bug causing infinite loop if exception thrown in Transport.send()
- Bump msgpack-core dependency to 0.8.11
Fixed bugs:
- Transport state change events suppressed after loss of network #233
Merged pull requests:
Merged pull requests:
- Relocated java-websocket library to bintray #229 (psolstice)
- Made Auth.TokenRequest constructors public #228 (psolstice)
- Fixed BuildConfig problems #227 (psolstice)
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:
- Messages are now removed from the queue after onError() call #225 (psolstice)
- Ensure that suspendTime is set on disconnection #221 (paddybyers)
- Added logging, clarified code #219 (psolstice)
- RSL6b test, log errors #215 (psolstice)
- Fixed travis crash when using OpenJDK 7 #213 (psolstice)
- Fixed init_default_log_output_stream test on Windows #209 (psolstice)
- Worked around RealtimeCryptoTest.set_cipher_params intermittent failure #203 (trenouf)
- Fixed and re-enabled RestAppStatsTest #201 (trenouf)
- Used hardcoded constant for protocol version #200 (trenouf)
- Add note on proguard to readme #199 (SimonWoolf)
- useTokenAuth forces token authorization #196 (trenouf)
- RSC7a: X-Ably-Version header #195 (trenouf)
- HttpTest: fixed test to allow for fallback hosts with same IP #192 (trenouf)
- Don't modify ClientOptions; Fixed tests to not set both host and environment #190 (trenouf)
- TO3k2,TO3k3: disallow restHost/realtimeHost with environment #189 (trenouf)
- Separate java and android builds #188 (trenouf)
- Tests for host fallback behaviour on rest #184 (trenouf)
- 0.8 authorisation changes #182 (trenouf)
- Removed unused HexDump class #181 (trenouf)
- issues/178: fix fallback #179 (trenouf)
- custom fallback support #176 (trenouf)
- RSC11 environment prefix #162 (VOstopolets)
- Reauth capability #149 (VOstopolets)
- RTN2g: Param "Lib" with header value (RSC7b) #147 (VOstopolets)
v0.8.4 (2016-10-07)
Fixed bugs:
Closed issues:
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)
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:
Merged pull requests:
- Detach on suspend #146 (paddybyers)
- Header X-Ably-Lib (RSC7b) #143 (VOstopolets)
- Ensure interoperability with other libraries over JSON. #140 (tcard)
- Update README.md #138 (hauleth)
- Ensure that messages with invalid data type are rejected. #137 (tcard)
- Add messages encoding fixtures test. #136 (tcard)
- Ensure graceful handling of DETACH and DISCONNECT. #131 (tcard)
- Proxy support #123 (paddybyers)
- RTN17 #122 (gokhanbarisaker)
- Avoid stalled state from previous connection when reusing Realtime. #117 (tcard)
- AuthOptions javadoc enhancements and testcases #116 (gokhanbarisaker)
- Add implicit attach test cases for channel publish and subscribe #115 (gokhanbarisaker)
- Add isLast API to PaginatedResult #111 (gokhanbarisaker)
- Add CompletionListener to Channel's attach API #108 (gokhanbarisaker)
v0.8.2 (2016-03-14)
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:
- 0.8.2 #119 (gokhanbarisaker)
- Update changelog for v0.8.2 release #118 (gokhanbarisaker)
- Add information for listening specific connection state changes to readme #114 (gokhanbarisaker)
- Add null check #113 (gokhanbarisaker)
- Move force argument to AuthOptions as a variable #107 (gokhanbarisaker)
- Update MessageListener and PresenceListener interface #106 (gokhanbarisaker)
- Add until attach functionality to Presence & Channel #102 (gokhanbarisaker)
- Add unsubscribe all and off all #101 (gokhanbarisaker)
- Fix channel state initialised spelling to initialized #100 (gokhanbarisaker)
- Fix constructor signature #99 (gokhanbarisaker)
- Overload publish APIs #98 (gokhanbarisaker)
- Add presence subscribe with presence action APIs #97 (gokhanbarisaker)
- Update Auth#requestToken signature for spec id RSA8e #96 (gokhanbarisaker)
- Presence overloading #95 (gokhanbarisaker)
- Convert enum variable naming to lowercase #94 (gokhanbarisaker)
- Fix recover spec regex pattern #86 (gokhanbarisaker)
- Add httpMaxRetryCount && Simplify http fallback flow #80 (gokhanbarisaker)
- Remove eclipse artifact #79 (gokhanbarisaker)
- Upgrade gradle version #78 (gokhanbarisaker)
- Upgrade dependencies #77 (gokhanbarisaker)
- Fix leaking non-AblyExceptions on ConnectionManager#onMessage callback #74 (gokhanbarisaker)
- Add custom test suite tasks to travis config #70 (gokhanbarisaker)
- Add maven package export script #67 (gokhanbarisaker)
- Fix typo on Presence#history javadoc #66 (gokhanbarisaker)
- Readme enhancement #65 (gokhanbarisaker)
- Add Auth#requestToken test cases #60 (gokhanbarisaker)
v0.8.1 (2016-01-01)
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:
Merged pull requests:
- Async http #59 (paddybyers)
- changes to run provided RestInit test case #58 (gorodechnyj)
- Allow connection manager thread to exit when closed or failed, and re… #50 (paddybyers)
- Add script for running tests in CI #49 (lmars)
- Publish implicit attach #48 (paddybyers)
- Make inclusion of android-test project conditional on whether or not … #47 (paddybyers)
- RSC1 and RSC2 - initialisation and default logging behaviour #43 (iliyakostadinov)
v0.8.0 (2015-05-07)
Implemented enhancements:
Fixed bugs:
Closed issues:
- Builds are not failing with the correct exit code #5
Merged pull requests:
- Fix comment in connection failure test #3 (mattheworiordan)
- Allow recovery string that includes -1 serial #2 (mattheworiordan)
* This Change Log was automatically generated by github_changelog_generator