## v10.5.8
*August 6, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.5.7
*July 31, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.5.6
*July 31, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal change - enabled EE for JS target in KMP tests. |
## v10.5.5
*July 30, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.5.4
*July 21, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal change - expose reconnect and disconnect in KMP . |
## v10.5.3
*July 15, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.5.2
*May 15, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.5.1
*May 13, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.5.0
*April 29, 2025*
| Type | Changes |
|------|----------|
| **Added** | • Updated kotlin version to 2.1.20. |
| **Fixed** | • Make network calls be logged using slf4j. |
## v10.4.7
*April 15, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Heartbeat is sent for subscribe when presenceTimeout or heartbeatInterval not set. |
## v10.4.6
*March 20, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.4.5
*March 7, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.4.4
*March 7, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.4.3
*February 28, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.4.2
*February 25, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Added deprecation warning to grant methods. |
## v10.4.1
*January 24, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • PubNub.forceDestroy should cause okHttpClient executor service to shutDown immediately. |
## v10.4.0
*January 21, 2025*
| Type | Changes |
|------|----------|
| **Added** | • A new optional parameter `ifMatchesEtag` is added to `setUUIDMetadata` and `setChannelMetadata`. When provided, the server compares the argument value with the ETag on the server and if they don't match a HTTP 412 error is returned. |
## v10.3.4
*January 13, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Internal fixes. |
## v10.3.3
*January 7, 2025*
| Type | Changes |
|------|----------|
| **Fixed** | • Added validation for Leave and Heartbeat to ensure user receives an error when providing empty strings for channels or groups. |
| **Modified** | • Internal refactor. |
## v10.3.2
*December 16, 2024*
| Type | Changes |
|------|----------|
| **Modified** | • Internal fixes. |
## v10.3.1
*December 12, 2024*
| Type | Changes |
|------|----------|
| **Modified** | • Internal changes for Chat SDK. |
## v10.3.0
*December 5, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added type aka. membershipType to Memberships and ChannelMembers APIs. Added also a way to specify optional data being added to the response for Membership and ChannelMembers APIs. |
## v10.2.1
*December 3, 2024*
| Type | Changes |
|------|----------|
| **Modified** | • Internal changes in preparation for other releases. |
## v10.2.0
*November 18, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added custom messageType for publish, signal, file, subscribe and history. |
## v10.1.0
*November 6, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add extension selection and support for single file in migration_tool.<br/>• Move shared java/kotlin APIs to a shared module.<br/>• Added timetoken utils methods.<br/>• Added getToken to Kotlin SDK.<br/>• Added authToken (PAM v3) to Kotlin SDK PNConfiguration. |
| **Fixed** | • Fix for NullPointerException in `pubnub-gson` when grant() is called without authKeys. |
## v10.0.0
*September 24, 2024*
| Type | Changes |
|------|----------|
| **Added** | • `PatchValue` is now used in objects returning optional data from the server, such as `PNChannelMetadata`, `PNUUIDMetadata` for example.<br/>• Removed mutable `PNConfiguration` classes which were deprecated in previous releases.<br/>• PNConfiguration.retryConfiguration is now enabled by default only for Subscribe requests and set to Exponential. |
| **Fixed** | • A migration script is provided with this release to help with package name changes. |
| **Modified** | • Please consult the migration guide for JVM SDKs version 10.0.0 for required changes to your code. |
## v9.2.4
*August 19, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixes a crash on Android after `PubNub.destroy` is called and there are requests running. |
## v9.2.3
*July 29, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • Fixed incorrect multiple callbacks (with exception) when sending files. |
## v9.2.2
*July 4, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • SetState via Heartbeat fix. |
## v9.2.1
*July 2, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add missing `auth_method` to APNS2 configuration. |
## v9.2.0
*June 11, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Add new FCMPayloadV2 for required new FCM push message format. |
| **Fixed** | • Disallow DTD in XML parser and enable SecureRandom. |
## v9.1.1
*April 15, 2024*
| Type | Changes |
|------|----------|
| **Fixed** | • The parameter names were not saved in compiled class files and were shown as `o`, `s1` etc. in the IDE. This change fixes the SDK to correctly show parameter names. |
## v9.1.0
*April 9, 2024*
| Type | Changes |
|------|----------|
| **Added** | • Added methods for publishing messages and signals on the `Channel` class. Also added new builder factories on `PubNub` with required parameters provided upfront, e.g. `PubNub.publish(message,channel)`. .<br/>• Allow overriding certain PubNub configuration options per API call through `Endpoint.overrideConfiguration`. |
| **Modified** | • Remaining classes from `com.pubnub.internal` package were hidden from compilation classpath. Users should only use classes in `com.pubnub.api` package. |
## v9.0.0
*March 28, 2024*
| Type | Changes |
|------|----------|
| **Modified** | • From now on, Java and Kotlin SDKs will be versioned and released together, and clients using both SDKs will get new features and bug fixes simultaneously.<br/>• `RemoteAction.async()` now provides a single `Result` parameter to the callback. Please see the documentation for details.<br/>• PubNub initialization must be done through `PubNub.create()`. Constructor initialization is disallowed.<br/>• There is a new immutable `PNConfiguration` class with builder. The old `PNConfiguration` class is marked deprecated, but functional for now.<br/>• Internal classes and interfaces have been moved to the `com.pubnub.internal` classes or removed from the compile classpath. You should not use them in your app. All user-facing classes are in the `com.pubnub.api` package. |
## v6.4.5
*December 18, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Added reading message type from fetch messages response.<br/>• Added random value 0.001-0.999s to delay between retries both for Linear and Exponential reconnection policies. |
## v6.4.4
*November 30, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Bring back compatibility with Android 6+ by removing the Jackson library dependency. |
## v6.4.3
*November 28, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Add `error` field to `PNFileEventResult` and set it in case of decryption failure. |
## v6.4.2
*November 23, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Handle unencrypted message in subscribe and history when crypto configured (error flag is set on message result). |
## v6.4.1
*October 30, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Updated the JSON lib to version 20231013.<br/>• Changed license type from MIT to PubNub Software Development Kit License. |
## v6.4.0
*October 16, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Add crypto module that allows configure SDK to encrypt and decrypt messages. |
| **Fixed** | • Improved security of crypto implementation by adding enhanced AES-CBC cryptor. |
## v6.3.6
*June 19, 2023*
| Type | Changes |
|------|----------|
| **Added** | • Added possibility to set state using heartbeat endpoint. . |
## v6.3.5
*May 18, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • In case of error retry heartbeat call limited number of times. |
## v6.3.4
*March 6, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Upgraded json lib. |
## v6.3.3
*March 6, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Upgraded jackson-databind lib to remove security vulnerabilities. |
## v6.3.2
*February 23, 2023*
| Type | Changes |
|------|----------|
| **Fixed** | • Remove deprecation for Grant Token methods. |
## v6.3.1
*December 15, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • In case of an error response it checks if there's a body before reading from it. |
## v6.3.0
*November 7, 2022*
| Type | Changes |
|------|----------|
| **Added** | • Added acceptance tests for ObjectsV2 feature.<br/>• Added possibility to add status when setting ChannelMembers.<br/>• Added status and type to query parameters for objectV2 REST calls. For membership and member only status. |
| **Modified** | • Upgrade OkHttp lib to 4.9.3. |
## v6.2.0
*September 20, 2022*
| Type | Changes |
|------|----------|
| **Added** | • PNFileEventResult has messageJson field with the same JsonElement type as in other events. |
## v6.1.0
*July 21, 2022*
| Type | Changes |
|------|----------|
| **Added** | • Add support for spaces and users permissions in grantToken.<br/>• Add userId to PNConfiguration and deprecate uuid . |
## v6.0.2
*May 19, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Upgraded gson to 2.9.0 to make SDK working under Java 17. |
## v6.0.1
*May 9, 2022*
| Type | Changes |
|------|----------|
| **Fixed** | • Do heartbeat and leave calls sequentially to prevent race condition between these two calls and 'phantom' join after leave. |
## v6.0.0
*January 12, 2022*
| Type | Changes |
|------|----------|
| **Modified** | • BREAKING CHANGES: uuid is required parameter in PNConfiguration constructor. |
## v5.3.0
*December 16, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Add revoke token feature. |
## v5.2.4
*December 9, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Emit PNReconnectedCategory in case of successful manual reconnection. |
## v5.2.3
*November 17, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Eviction of OkHttp connection pool after reestablishing connection (affects transactional calls). |
## v5.2.2
*November 4, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Reconnect always restarts the subscription connection. |
## v5.2.1
*October 6, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Acceptance tests plugged into CI pipeline. |
| **Fixed** | • Meta field exposed correctly in PNToken class. |
## v5.2.0
*September 8, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Extend grantToken method to enable control of Objects API permission. Enhance granularity of permission control to enable permissions per UUID. |
## v5.1.1
*July 13, 2021*
| Type | Changes |
|------|----------|
| **Fixed** | • Update Jackson libraries to avoid known vulnerabilities. |
## v5.1.0
*May 20, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Method grantToken has beed added. It allows generation of signed token with permissions for channels and channel groups. |
| **Fixed** | • UUID is now exposed as PNMembership field which make is accessible from PNMembershipResult argument of SubscribeCallback.membership() method. |
## v5.0.0
*May 12, 2021*
| Type | Changes |
|------|----------|
| **Added** | • Now random initialisation vector used when encryption enabled is now default behaviour. |
| **Fixed** | • There were some non daemon threads running in background preventing VM from exiting. Now they are daemon threads. |
## v4.36.0
*April 8, 2021*
| Type | Changes |
|------|----------|
| **Added** | • New way of controlling Presence by Heartbeat calls for purpose of usage with dedicated server configuration (ACL). This feature can be used only with additional support from PubNub. |
## v4.33.3
*October 21, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Improved handling of random initialization vector for encrypting messages.<br/>• Restore Android compatibility for Gradle 3.X by removing Stringjoin().<br/>• Return appropriate error information when payload is too large. |
## v4.33.2
*October 8, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • To improve security of messages, added support for random initialization vector to encrypt and decrypt messages. |
## v4.33.1
*September 24, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • PubNubException now overrides Throwable's `getMessage` so the `status.errorData.throwablemessage` can be properly set. |
## v4.33.0
*September 14, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Objects (v2) API exposed to enable metadata management.<br/>• Enable Objects (v2) related permissions management via Grant method. |
## v4.32.1
*August 24, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix for subscription loop to prevent unexpected disconnections caused by unhandled HTTP statuses. |
## v4.32.0
*August 14, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Allows to upload files to channels, download them with optional encryption support. |
## v4.31.3
*June 17, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix typo in suppressLeaveEvents in PNConfiguration. |
## v4.31.2
*June 12, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add "click_action" parameter to PushPayloadHelper in order to pass it to FCM. |
## v4.31.1
*April 16, 2020*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix OkHttp reconnection policy |
## v4.31.0
*February 25, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Implemented Objects Filtering API |
| **Modified** | • Handled more network events to keep the client subscribed<br/>• Improved interaction with classes from org.json*<br/>• Made PNCallback eligible for SAM/lambda conversion<br/>• Deprecated PNPushType.GCM in favor of PNPushType.FCM |
## v4.30.0
*January 23, 2020*
| Type | Changes |
|------|----------|
| **Added** | • Add support for APNS2 Push API<br/>• Add a utility class to ease creating push payloads |
## v4.29.2
*December 2, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Disable OkHttp reconnection policy |
## v4.29.1
*October 22, 2019*
| Type | Changes |
|------|----------|
| **Modified** | • Made the SDK more Kotlin-friendly<br/>• Categorized cancelled requests as such<br/>• Removed the 'audit' method |
## v4.29.0
*October 8, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Implemented Message Actions API<br/>• Added 'includeMeta' to history()<br/>• Added 'includeMeta' to fetchMessages()<br/>• Added 'includeMessageActions' to fetchMessages() |
## v4.28.0
*October 1, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add PAMv3 support<br/>• Implement TMS (Token Manager)<br/>• Upgrade PAM endpoints to v2<br/>• Introduce delete permission for grant |
## v4.27.0
*August 27, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add Objects API support |
## v4.26.1
*August 13, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Introduce serialization class for Signals API |
## v4.26.0
*August 9, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Add Signals support |
| **Fixed** | • Expose OkHttp logging interceptor library |
## v4.25.0
*June 6, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Enable app level grants<br/>• Custom encode auth key where it's not encoded automatically |
| **Added** | • Move state param from heartbeat to subscribe calls |
## v4.24.0
*May 21, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Enforce a minimum presence timeout value<br/>• Disable presence heartbeats by default |
## v4.23.0
*May 8, 2019*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix reconnection issues by allowing it solely for network issues |
## v4.22.0
*April 26, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Introduce Message Count API<br/>• Update 3rd party libraries |
## v4.22.0-beta
*January 31, 2019*
| Type | Changes |
|------|----------|
| **Added** | • Update 3rd party libraries |
## v4.21.0
*October 26, 2018*
| Type | Changes |
|------|----------|
| **Added** | • Support optional query parameters for every request<br/>• Update documentation |
## v4.20.0
*August 7, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix an issue where the global-here-now response was interpreted incorrectly |
## v4.19.0
*March 29, 2018*
| Type | Changes |
|------|----------|
| **Fixed** | • Fix an issue where end of channel history was interpreted as an error |
## v4.18.0
*January 11, 2018*
| Type | Changes |
|------|----------|
| **Modified** | • lock down OkHttp version to support latest android version |
## v4.17.0
*December 19, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • allow SDK to only send heartbeats without subscribing to the data channel. |
## v4.16.0
*November 21, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • allow setting setMaximumConnections to open more connections to PubNub |
## v4.15.0
*November 17, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • update gson dependency |
| **Fixed** | • make listeners thread safe<br/>• close hanging threads on shutdown |
## v4.14.0
*October 25, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • add support to suppress leave events |
## v4.13.0
*October 23, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • do not execute subscribe on empty string channel, channel groups<br/>• stop heartbeat loop if an error shows up. |
## v4.12.0
*October 5, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • fix worker thread unloading. |
| **Added** | • prevent concurrent modification of listeners. |
## v4.11.0
*October 5, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • fix retrofit unloading. |
## v4.10.0
*September 17, 2017*
| Type | Changes |
|------|----------|
| **Added** | • rework the loading of services to load the classes once. |
## v4.9.1
*August 14, 2017*
| Type | Changes |
|------|----------|
| **Added** | • patch-up to the deduping algorithm |
## v4.9.0
*August 14, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Internal deduping mechanism when devices cross regions (dedupOnSubscribe). |
## v4.8.0
*August 8, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Allow certificate pinning via setCertificatePinner on PNConfiguration<br/>• Allow disabling of heartbeat by setting the interval to 0.<br/>• GAE fixes. |
## v4.7.0
*July 20, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Allow injection of httpLoggingInterceptor for extra logging monitoring.. |
## v4.6.5
*June 28, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • adjust queue exceeded notifications to be greater or equal of. |
## v4.6.4
*June 10, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • gracefully handle disabled history |
## v4.6.3
*June 3, 2017*
| Type | Changes |
|------|----------|
| **Added** | • on interval events, pass hereNowRefresh to indicate if a here_now fetch is needed. |
## v4.6.2
*April 13, 2017*
| Type | Changes |
|------|----------|
| **Added** | • set a name for Subscription Manager Consumer Thead. |
## v4.6.1
*April 6, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • SDK crash in Android with Airplane Mode |
| **Added** | • add deltas on interval action. |
## v4.6.0
*March 14, 2017*
| Type | Changes |
|------|----------|
| **Added** | • To distinguish UUID's that were generated by our SDK, we appended `pn-` before the UUID to signal that it's a randomly generated UUID.<br/>• Allow the passing of OkHttp connection spec via setConnectionSpec |
| **Modified** | • Bump retrofit to 2.2.0 |
## v4.5.0
*February 15, 2017*
| Type | Changes |
|------|----------|
| **Added** | • add .toString methods to all public facing models and POJOs |
## v4.4.4
*February 6, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Add support to configure host name verifier. |
## v4.4.3
*February 2, 2017*
| Type | Changes |
|------|----------|
| **Added** | • Add support to configure custom certificate pinning via SSLSocketFactory and X509 configuration objects. |
## v4.4.2
*January 31, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • SDK was not sending the user metadata on Message Callback |
## v4.4.1
*January 25, 2017*
| Type | Changes |
|------|----------|
| **Fixed** | • SDK did not honor the exhaustion of reconnections, it will now disconnect once max retries happened |
## v4.4.0
*January 24, 2017*
| Type | Changes |
|------|----------|
| **Modified** | • Support for maximum reconnection attempts<br/>• Populate affectedChannel and affectedChannelGroups<br/>• Support for GAE<br/>• Emit pnconnected when adding / removing channels. |
## v4.3.1
*December 22, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • support for key-level grant. |
## v4.3.0
*December 14, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • JSON parser is switched to GSON, new artifact on nexus as pubnub-gson<br/>• GetState, setState return a JsonElement instead of a plain object. |
## v4.2.3
| Type | Changes |
|------|----------|
| **Modified** | • Swapping out logger for SLF4J API and removing final methods |
## v4.2.2
*December 9, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • remove final identifiers from the public facing API. |
## v4.2.1
*November 23, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • include publisher UUID on incoming message<br/>• allow to set custom TTL on a publish |
## v4.2.0
*October 25, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • Signatures are generated for all requests with secret key to ensure secure transmission of data<br/>• support for alerting of queue exceeded (PNRequestMessageCountExceededCategory)<br/>• signaling to OkHttp to stop the queues on termination. |
## v4.1.0
*October 12, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • destroy now correctly forces the producer thread to shut down; stop is now deprecated for disconnect<br/>• support for sending instance id for presence detection (disabled by default)<br/>• support for sending request id to burst cache (enabled by default)<br/>• proxy support via the native proxy configurator class. |
## v4.0.14
*September 20, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • on PAM error, populate the affectedChannel or affectedChannelGroup to signal which channels are failing |
## v4.0.13
*September 14, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • populate jso with the error. |
## v4.0.12
*September 13, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixing parsing of origination payload within the psv2 envelope |
## v4.0.11
*September 9, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • bumping build process for gradle 3 / merging documentation into the repo and test adjustments |
## v4.0.10
*September 7, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • adding channel / channelGroup fields when a message / presence event comes in. |
## v4.0.9
*August 24, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • adjustments for handling pn_other and decryption<br/>• retrofit version bumps. |
## v4.0.8
*August 16, 2016*
| Type | Changes |
|------|----------|
| **Added** | • added unsubscribeAll, getSubscribedChannels, getSubscribedChannelGroups<br/>• SDK will establish secure connections by default<br/>• added support for exponential backoff reconnection policies |
## v4.0.7
*August 11, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • reduce overlap on error handling when returning exceptions. |
## v4.0.6
*July 18, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • send heartbeat presence value when subscribing |
## v4.0.5
*July 7, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • unified retrofit handling to lower amount of instances and sync'd the state methods. |
## v4.0.4
*June 24, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • setting State for other UUID's is now supported. |
## v4.0.3
*June 15, 2016*
| Type | Changes |
|------|----------|
| **Added** | • fire() method and no-replication options. |
## v4.0.2
*June 15, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fix to the version fetching. |
## v4.0.1
*June 6, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • adjustment of the subscribe loop to alleviate duplicate dispatches. |
## v4.0.0
*June 3, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • first GA. |
## v4.0.0-beta4
*June 3, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • reconnects and minor adjustments. |
## v4.0.0-beta3
*June 3, 2016*
| Type | Changes |
|------|----------|
| **Fixed** | • fixing state not coming on the subscriber callback.<br/>• adjustments to URL encoding on publish, subscribe, set-state operations to avoid double encoding with retrofit. |
## v4.0.0-beta2
*June 3, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • reworking of message queue.<br/>• checkstyle, findbugs.<br/>• reworking error notifications. |
## v4.0.0-beta1
*June 3, 2016*
| Type | Changes |
|------|----------|
| **Modified** | • initial beta1. |
Fixed | - Internal change - enabled EE for JS target in KMP tests.
|
Fixed | - Internal change - expose reconnect and disconnect in KMP .
|
Added | - Updated kotlin version to 2.1.20.
|
Fixed | - Make network calls be logged using slf4j.
|
Fixed | - Heartbeat is sent for subscribe when presenceTimeout or heartbeatInterval not set.
|
Fixed | - Added deprecation warning to grant methods.
|
Fixed | - PubNub.forceDestroy should cause okHttpClient executor service to shutDown immediately.
|
Added | - A new optional parameter
ifMatchesEtag is added to setUUIDMetadata and setChannelMetadata . When provided, the server compares the argument value with the ETag on the server and if they don't match a HTTP 412 error is returned.
|
Fixed | - Added validation for Leave and Heartbeat to ensure user receives an error when providing empty strings for channels or groups.
|
Modified | |
Modified | - Internal changes for Chat SDK.
|
Added | - Added type aka. membershipType to Memberships and ChannelMembers APIs. Added also a way to specify optional data being added to the response for Membership and ChannelMembers APIs.
|
Modified | - Internal changes in preparation for other releases.
|
Added | - Added custom messageType for publish, signal, file, subscribe and history.
|
Added | - Add extension selection and support for single file in migration_tool.
- Move shared java/kotlin APIs to a shared module.
- Added timetoken utils methods.
- Added getToken to Kotlin SDK.
- Added authToken (PAM v3) to Kotlin SDK PNConfiguration.
|
Fixed | - Fix for NullPointerException in
pubnub-gson when grant() is called without authKeys.
|
Added | PatchValue is now used in objects returning optional data from the server, such as PNChannelMetadata , PNUUIDMetadata for example.- Removed mutable
PNConfiguration classes which were deprecated in previous releases. - PNConfiguration.retryConfiguration is now enabled by default only for Subscribe requests and set to Exponential.
|
Fixed | - A migration script is provided with this release to help with package name changes.
|
Modified | - Please consult the migration guide for JVM SDKs version 10.0.0 for required changes to your code.
|
Fixed | - Fixes a crash on Android after
PubNub.destroy is called and there are requests running.
|
Fixed | - Fixed incorrect multiple callbacks (with exception) when sending files.
|
Fixed | - SetState via Heartbeat fix.
|
Added | - Add missing
auth_method to APNS2 configuration.
|
Added | - Add new FCMPayloadV2 for required new FCM push message format.
|
Fixed | - Disallow DTD in XML parser and enable SecureRandom.
|
Fixed | - The parameter names were not saved in compiled class files and were shown as
o , s1 etc. in the IDE. This change fixes the SDK to correctly show parameter names.
|
Added | - Added methods for publishing messages and signals on the
Channel class. Also added new builder factories on PubNub with required parameters provided upfront, e.g. PubNub.publish(message,channel) . . - Allow overriding certain PubNub configuration options per API call through
Endpoint.overrideConfiguration .
|
Modified | - Remaining classes from
com.pubnub.internal package were hidden from compilation classpath. Users should only use classes in com.pubnub.api package.
|
Modified | - From now on, Java and Kotlin SDKs will be versioned and released together, and clients using both SDKs will get new features and bug fixes simultaneously.
RemoteAction.async() now provides a single Result parameter to the callback. Please see the documentation for details.- PubNub initialization must be done through
PubNub.create() . Constructor initialization is disallowed. - There is a new immutable
PNConfiguration class with builder. The old PNConfiguration class is marked deprecated, but functional for now. - Internal classes and interfaces have been moved to the
com.pubnub.internal classes or removed from the compile classpath. You should not use them in your app. All user-facing classes are in the com.pubnub.api package.
|
Fixed | - Added reading message type from fetch messages response.
- Added random value 0.001-0.999s to delay between retries both for Linear and Exponential reconnection policies.
|
Fixed | - Bring back compatibility with Android 6+ by removing the Jackson library dependency.
|
Added | - Add
error field to PNFileEventResult and set it in case of decryption failure.
|
Fixed | - Handle unencrypted message in subscribe and history when crypto configured (error flag is set on message result).
|
Fixed | - Updated the JSON lib to version 20231013.
- Changed license type from MIT to PubNub Software Development Kit License.
|
Added | - Add crypto module that allows configure SDK to encrypt and decrypt messages.
|
Fixed | - Improved security of crypto implementation by adding enhanced AES-CBC cryptor.
|
Added | - Added possibility to set state using heartbeat endpoint. .
|
Fixed | - In case of error retry heartbeat call limited number of times.
|
Fixed | - Upgraded jackson-databind lib to remove security vulnerabilities.
|
Fixed | - Remove deprecation for Grant Token methods.
|
Fixed | - In case of an error response it checks if there's a body before reading from it.
|
Added | - Added acceptance tests for ObjectsV2 feature.
- Added possibility to add status when setting ChannelMembers.
- Added status and type to query parameters for objectV2 REST calls. For membership and member only status.
|
Modified | - Upgrade OkHttp lib to 4.9.3.
|
Added | - PNFileEventResult has messageJson field with the same JsonElement type as in other events.
|
Added | - Add support for spaces and users permissions in grantToken.
- Add userId to PNConfiguration and deprecate uuid .
|
Fixed | - Upgraded gson to 2.9.0 to make SDK working under Java 17.
|
Fixed | - Do heartbeat and leave calls sequentially to prevent race condition between these two calls and 'phantom' join after leave.
|
Modified | - BREAKING CHANGES: uuid is required parameter in PNConfiguration constructor.
|
Added | - Add revoke token feature.
|
Fixed | - Emit PNReconnectedCategory in case of successful manual reconnection.
|
Fixed | - Eviction of OkHttp connection pool after reestablishing connection (affects transactional calls).
|
Fixed | - Reconnect always restarts the subscription connection.
|
Added | - Acceptance tests plugged into CI pipeline.
|
Fixed | - Meta field exposed correctly in PNToken class.
|
Added | - Extend grantToken method to enable control of Objects API permission. Enhance granularity of permission control to enable permissions per UUID.
|
Fixed | - Update Jackson libraries to avoid known vulnerabilities.
|
Added | - Method grantToken has beed added. It allows generation of signed token with permissions for channels and channel groups.
|
Fixed | - UUID is now exposed as PNMembership field which make is accessible from PNMembershipResult argument of SubscribeCallback.membership() method.
|
Added | - Now random initialisation vector used when encryption enabled is now default behaviour.
|
Fixed | - There were some non daemon threads running in background preventing VM from exiting. Now they are daemon threads.
|
Added | - New way of controlling Presence by Heartbeat calls for purpose of usage with dedicated server configuration (ACL). This feature can be used only with additional support from PubNub.
|
Fixed | - Improved handling of random initialization vector for encrypting messages.
- Restore Android compatibility for Gradle 3.X by removing Stringjoin().
- Return appropriate error information when payload is too large.
|
Fixed | - To improve security of messages, added support for random initialization vector to encrypt and decrypt messages.
|
Fixed | - PubNubException now overrides Throwable's
getMessage so the status.errorData.throwablemessage can be properly set.
|
Added | - Objects (v2) API exposed to enable metadata management.
- Enable Objects (v2) related permissions management via Grant method.
|
Fixed | - Fix for subscription loop to prevent unexpected disconnections caused by unhandled HTTP statuses.
|
Added | - Allows to upload files to channels, download them with optional encryption support.
|
Fixed | - Fix typo in suppressLeaveEvents in PNConfiguration.
|
Added | - Add "click_action" parameter to PushPayloadHelper in order to pass it to FCM.
|
Fixed | - Fix OkHttp reconnection policy
|
Added | - Implemented Objects Filtering API
|
Modified | - Handled more network events to keep the client subscribed
- Improved interaction with classes from org.json*
- Made PNCallback eligible for SAM/lambda conversion
- Deprecated PNPushType.GCM in favor of PNPushType.FCM
|
Added | - Add support for APNS2 Push API
- Add a utility class to ease creating push payloads
|
Modified | - Disable OkHttp reconnection policy
|
Modified | - Made the SDK more Kotlin-friendly
- Categorized cancelled requests as such
- Removed the 'audit' method
|
Added | - Implemented Message Actions API
- Added 'includeMeta' to history()
- Added 'includeMeta' to fetchMessages()
- Added 'includeMessageActions' to fetchMessages()
|
Added | - Add PAMv3 support
- Implement TMS (Token Manager)
- Upgrade PAM endpoints to v2
- Introduce delete permission for grant
|
Added | - Introduce serialization class for Signals API
|
Added | |
Fixed | - Expose OkHttp logging interceptor library
|
Fixed | - Enable app level grants
- Custom encode auth key where it's not encoded automatically
|
Added | - Move state param from heartbeat to subscribe calls
|
Added | - Enforce a minimum presence timeout value
- Disable presence heartbeats by default
|
Fixed | - Fix reconnection issues by allowing it solely for network issues
|
Added | - Introduce Message Count API
- Update 3rd party libraries
|
Added | - Update 3rd party libraries
|
Added | - Support optional query parameters for every request
- Update documentation
|
Fixed | - Fix an issue where the global-here-now response was interpreted incorrectly
|
Fixed | - Fix an issue where end of channel history was interpreted as an error
|
Modified | - lock down OkHttp version to support latest android version
|
Modified | - allow SDK to only send heartbeats without subscribing to the data channel.
|
Modified | - allow setting setMaximumConnections to open more connections to PubNub
|
Modified | |
Fixed | - make listeners thread safe
- close hanging threads on shutdown
|
Modified | - add support to suppress leave events
|
Modified | - do not execute subscribe on empty string channel, channel groups
- stop heartbeat loop if an error shows up.
|
Fixed | - fix worker thread unloading.
|
Added | - prevent concurrent modification of listeners.
|
Added | - rework the loading of services to load the classes once.
|
Added | - patch-up to the deduping algorithm
|
Added | - Internal deduping mechanism when devices cross regions (dedupOnSubscribe).
|
Added | - Allow certificate pinning via setCertificatePinner on PNConfiguration
- Allow disabling of heartbeat by setting the interval to 0.
- GAE fixes.
|
Added | - Allow injection of httpLoggingInterceptor for extra logging monitoring..
|
Fixed | - adjust queue exceeded notifications to be greater or equal of.
|
Fixed | - gracefully handle disabled history
|
Added | - on interval events, pass hereNowRefresh to indicate if a here_now fetch is needed.
|
Added | - set a name for Subscription Manager Consumer Thead.
|
Fixed | - SDK crash in Android with Airplane Mode
|
Added | - add deltas on interval action.
|
Added | - To distinguish UUID's that were generated by our SDK, we appended
pn- before the UUID to signal that it's a randomly generated UUID. - Allow the passing of OkHttp connection spec via setConnectionSpec
|
Modified | |
Added | - add .toString methods to all public facing models and POJOs
|
Added | - Add support to configure host name verifier.
|
Added | - Add support to configure custom certificate pinning via SSLSocketFactory and X509 configuration objects.
|
Fixed | - SDK was not sending the user metadata on Message Callback
|
Fixed | - SDK did not honor the exhaustion of reconnections, it will now disconnect once max retries happened
|
Modified | - Support for maximum reconnection attempts
- Populate affectedChannel and affectedChannelGroups
- Support for GAE
- Emit pnconnected when adding / removing channels.
|
Modified | - support for key-level grant.
|
Modified | - JSON parser is switched to GSON, new artifact on nexus as pubnub-gson
- GetState, setState return a JsonElement instead of a plain object.
|
Modified | - Swapping out logger for SLF4J API and removing final methods
|
Modified | - remove final identifiers from the public facing API.
|
Modified | - include publisher UUID on incoming message
- allow to set custom TTL on a publish
|
Modified | - Signatures are generated for all requests with secret key to ensure secure transmission of data
- support for alerting of queue exceeded (PNRequestMessageCountExceededCategory)
- signaling to OkHttp to stop the queues on termination.
|
Modified | - destroy now correctly forces the producer thread to shut down; stop is now deprecated for disconnect
- support for sending instance id for presence detection (disabled by default)
- support for sending request id to burst cache (enabled by default)
- proxy support via the native proxy configurator class.
|
Modified | - on PAM error, populate the affectedChannel or affectedChannelGroup to signal which channels are failing
|
Modified | - populate jso with the error.
|
Fixed | - fixing parsing of origination payload within the psv2 envelope
|
Modified | - bumping build process for gradle 3 / merging documentation into the repo and test adjustments
|
Modified | - adding channel / channelGroup fields when a message / presence event comes in.
|
Modified | - adjustments for handling pn_other and decryption
- retrofit version bumps.
|
Added | - added unsubscribeAll, getSubscribedChannels, getSubscribedChannelGroups
- SDK will establish secure connections by default
- added support for exponential backoff reconnection policies
|
Modified | - reduce overlap on error handling when returning exceptions.
|
Modified | - send heartbeat presence value when subscribing
|
Modified | - unified retrofit handling to lower amount of instances and sync'd the state methods.
|
Fixed | - setting State for other UUID's is now supported.
|
Added | - fire() method and no-replication options.
|
Fixed | - fix to the version fetching.
|
Fixed | - adjustment of the subscribe loop to alleviate duplicate dispatches.
|
Modified | - reconnects and minor adjustments.
|
Fixed | - fixing state not coming on the subscriber callback.
- adjustments to URL encoding on publish, subscribe, set-state operations to avoid double encoding with retrofit.
|
Modified | - reworking of message queue.
- checkstyle, findbugs.
- reworking error notifications.
|