Skip to content

[pull] master from pubnub:master #21

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open

[pull] master from pubnub:master #21

wants to merge 48 commits into from

Conversation

pull[bot]
Copy link

@pull pull bot commented Apr 15, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

* Update .pubnub.yml

* build(version): change pattern for version bump

Change pattern which is used to update version in `.pubnub.yml` file for `version` field to 
exclude `v` prefix.

Co-authored-by: Serhii Mamontov <parfeon@me.com>
@pull pull bot added the ⤵️ pull label Apr 15, 2022
michaljolender and others added 28 commits April 26, 2022 14:23
In some circumstances we do two contradicting calls in almost
the same time. One of them is a call to heartbeat endpoint and
the other is to leave endpoint. The reason why those call could
happen in almost the same time is because heartbeat calls are done
periodically on separate thread and leave calls are happening due to
user actions. This means that sooner or later this situation will happen
and pubnub presence system will generate join event and leave event (usually
in this order), but then another timeout event when presence timeout
expires.

To prevent it from happening I've decided to limit the number of concurrent
calls to only those two endpoints to just one. This is done on the okhttp
client level. Because those two calls can be ordered only two ways we can
provide an analysis of why this change might work.

Let's first concentrate on situation when heartbeat call is already happening
and unsubscribe method is being called:

* leave call will go to the internal queue of calls of okhttp client due to
limit of concurrent calls
* unsubscribe method internally will try to cancel the heartbeat call and schedule
timer with another heartbeat call (but with different set of channels)
* heartbeat finishes (either normally, or by being cancelled), this usually
do not generate any events, but it might generate join event
* http leave call can finally proceed, which generates leave event
* because the calls have been done sequentially there's no timeout event

In case when leave call is already ongoing and the schedule heartbeat timer
is trying to make heartbeat request:

* heartbeat request goes to client's internal queue to wait on leave to be finished
* in the meantime usubscribe method internally cancels the timer and cancels the heartbeat
request before it has time to start
* leave request ends, and leave event is being generated
* there's no timeout event, and the presence didn't have chance to be extended
* Upgraded gson to 2.9.0

Following error occurred:
“java.lang.reflect.InaccessibleObjectException: Unable to make private java.util.Collections$EmptyMap() accessible: module java.base does not “opens java.util” to unnamed module @4387b79e”

Explanation:
"The reason why this is causing an exception for JDK 17 is because JDK internals are now strongly encapsulated (see JEP 403).
 In general you should avoid using reflection based serialisation and deserialisation for classes which you do not control because you rely on their implementation details which could change at any point."

* Disable HTML escaping in gson
Extract message processing to simplify the design (and tests)
* Contract tests for UUID against object V2 REST
* Added contract tests for ChannelMetadata, Member and Membership against object V2 REST
* Added STATUS and TYPE where needed as a value for include request parameters for ObjectV2 calls.
* Added managed channel members test and membership tests.
* Added possibility to add status when setting ChannelMembers
refactor: Upgrade OkHttp lib to 4.9.3
feat: Added acceptance tests for ObjectsV2 feature
feat: Added possibility to add status when setting ChannelMembers
feat: Added status and type to query parameters for objectV2 REST calls. For membership and member only status
* Updated dependencies, fixed compilation warnings.

What is missing is to add sonarList/spotBug as a replacement for Findbug that was removed from gradle in newer version. That would be added gradually as a boy scout rule.
Refactor command handler workflow to use bot name from secrets.
test(github-actions): migrate tests to GitHub Actions

Migrate PubNub SDK test suite from Travis to GitHub Actions.

test(github-action): refactor command handler

Refactor command handler workflow to use bot name from secrets.

test(validation): replace `yml` validation script

Replace `.pubnub.yml` validation script with call of custom validation action.

refactor(workflow): refactor tests workflow

Unify integration and acceptance test workflow files into one.

test(github-action): add fast failure

Add ability to cancel whole test workflow if any of jobs failed.
fix: Remove deprecation for Grant Token methods.
* Upgraded jackson-databind lib to remove sec vulnerabilities.
* Upgraded json lib
* PubNub SDK v6.3.4 release.
* Add heartbeat error limit

In case of any problems we should not quit immediately heartbeat calls.
The interval is chosen so it's possible to call heartbeat 3 times
during one presence interval, therefore we should keep trying at least
few more times

* PubNub SDK v6.3.5 release.

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
* Added possibility to set state using heartbeat endpoint.
* PubNub SDK v6.3.6 release.
marcin-cebo and others added 19 commits October 16, 2023 12:53
fix: Improve security of crypto implementation. 

Improved security of crypto implementation by adding enhanced AES-CBC cryptor

feat: Add crypto module

Add crypto module that allows configure SDK to encrypt and decrypt messages. 

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
* updated codeowners.
…nse (#287)

* Changed license type from MIT to PubNub Software Development Kit License

* Updated the JSON library to version 20231013

* PubNub SDK v6.4.1 release.

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
Jacoco and Lombok version bumps to work with JDK 17+
* Don't crash on malformed messages received with crypto enabled

Deliver original message content with error flag.

* Deduplicate message decryption code with subscribe and history
* Remove 'contact support' in case of network error.

* PubNub SDK v6.4.2 release.

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
* Add error field to file result and set on decrypt error

* PubNub SDK v6.4.3 release.

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
* Remove Jackson library

* Emulate Jackson's handling of anonymous collections in GSON mapper

* PubNub SDK v6.4.4 release.

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
* Move kt file to kotlin sourceset

* PubNub SDK v6.4.4 release.

---------

Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
* Add reading message type in FetchMessages
* Modified PNReconnectionPolicy
Added random value 0,001-0,999s to delay between retry both for Linear and Exponential reconnection policies.

* PubNub SDK v6.4.5 release.
---------
Co-authored-by: PubNub Release Bot <120067856+pubnub-release-bot@users.noreply.github.com>
build(runner): change runner groups
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants