From 93b064e6a8ce5d1c5ebd694c7c32b38436308a68 Mon Sep 17 00:00:00 2001 From: Max Presman Date: Wed, 14 Sep 2016 08:50:36 -0700 Subject: [PATCH 1/4] add a method to destory the connection pools --- src/main/java/com/pubnub/api/PubNub.java | 7 +++++ .../pubnub/api/managers/RetrofitManager.java | 28 +++++++++++++------ 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/pubnub/api/PubNub.java b/src/main/java/com/pubnub/api/PubNub.java index 291783d1b..35f28f56d 100644 --- a/src/main/java/com/pubnub/api/PubNub.java +++ b/src/main/java/com/pubnub/api/PubNub.java @@ -243,6 +243,13 @@ public final void stop() { subscriptionManager.stop(); } + /** + * Destroy the SDK to evict the connection pools. + */ + public final void destroy() { + retrofitManager.destroy(); + } + /** * Perform a Reconnect to the network */ diff --git a/src/main/java/com/pubnub/api/managers/RetrofitManager.java b/src/main/java/com/pubnub/api/managers/RetrofitManager.java index cf8979ac0..5a47d8a54 100644 --- a/src/main/java/com/pubnub/api/managers/RetrofitManager.java +++ b/src/main/java/com/pubnub/api/managers/RetrofitManager.java @@ -15,27 +15,30 @@ public class RetrofitManager { private PubNub pubnub; - @Getter - private Retrofit transactionInstance; - @Getter - private Retrofit subscriptionInstance; + private OkHttpClient transactionClientInstance; + private OkHttpClient subscriptionClientInstance; + + @Getter private Retrofit transactionInstance; + @Getter private Retrofit subscriptionInstance; public RetrofitManager(PubNub pubNubInstance) { this.pubnub = pubNubInstance; - this.transactionInstance = createRetrofit( + this.transactionClientInstance = createOkHttpClient( this.pubnub.getConfiguration().getNonSubscribeRequestTimeout(), this.pubnub.getConfiguration().getConnectTimeout() ); - this.subscriptionInstance = createRetrofit( + this.subscriptionClientInstance = createOkHttpClient( this.pubnub.getConfiguration().getSubscribeTimeout(), this.pubnub.getConfiguration().getConnectTimeout() ); + this.transactionInstance = createRetrofit(this.transactionClientInstance); + this.subscriptionInstance = createRetrofit(this.subscriptionClientInstance); } - protected final Retrofit createRetrofit(int requestTimeout, int connectTimeOut) { + private OkHttpClient createOkHttpClient(int requestTimeout, int connectTimeOut) { OkHttpClient.Builder httpClient = new OkHttpClient.Builder(); httpClient.readTimeout(requestTimeout, TimeUnit.SECONDS); httpClient.connectTimeout(connectTimeOut, TimeUnit.SECONDS); @@ -46,11 +49,20 @@ protected final Retrofit createRetrofit(int requestTimeout, int connectTimeOut) httpClient.addInterceptor(logging); } + return httpClient.build(); + } + + private Retrofit createRetrofit(OkHttpClient client) { return new Retrofit.Builder() .baseUrl(pubnub.getBaseUrl()) .addConverterFactory(JacksonConverterFactory.create()) - .client(httpClient.build()) + .client(client) .build(); } + public final void destroy() { + this.transactionClientInstance.connectionPool().evictAll(); + this.subscriptionClientInstance.connectionPool().evictAll(); + } + } From 43bd8c9b0d15cc56e4938f66d9fd28f905f72d4d Mon Sep 17 00:00:00 2001 From: Max Presman Date: Wed, 14 Sep 2016 10:20:13 -0700 Subject: [PATCH 2/4] update endpoint to alert on failed channels --- .../com/pubnub/api/endpoints/Endpoint.java | 47 +++++++++++++++---- 1 file changed, 39 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/pubnub/api/endpoints/Endpoint.java b/src/main/java/com/pubnub/api/endpoints/Endpoint.java index 42c34d98a..cdcd6302b 100644 --- a/src/main/java/com/pubnub/api/endpoints/Endpoint.java +++ b/src/main/java/com/pubnub/api/endpoints/Endpoint.java @@ -21,6 +21,7 @@ import java.net.ConnectException; import java.net.SocketTimeoutException; import java.net.UnknownHostException; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -111,7 +112,7 @@ public final void async(final PNCallback callback) { try { call = doWork(createBaseParams()); } catch (PubNubException pubnubException) { - callback.onResponse(null, createStatusResponse(PNStatusCategory.PNBadRequestCategory, null, pubnubException)); + callback.onResponse(null, createStatusResponse(PNStatusCategory.PNBadRequestCategory, null, pubnubException, null, null)); return; } @@ -125,6 +126,9 @@ public void onResponse(final Call performedCall, final Response re String responseBodyText; JsonNode responseBody; + JsonNode responseBodyPayload = null; + ArrayList affectedChannels = new ArrayList<>(); + ArrayList affectedChannelGroups = new ArrayList<>(); try { responseBodyText = response.errorBody().string(); @@ -138,6 +142,10 @@ public void onResponse(final Call performedCall, final Response re responseBody = null; } + if (responseBody != null && responseBody.has("payload")) { + responseBodyPayload = responseBody.get("payload"); + } + PNStatusCategory pnStatusCategory = PNStatusCategory.PNUnknownCategory; PubNubException ex = PubNubException.builder() .pubnubError(PubNubErrorBuilder.PNERROBJ_HTTP_ERROR) @@ -148,24 +156,37 @@ public void onResponse(final Call performedCall, final Response re if (response.code() == SERVER_RESPONSE_FORBIDDEN) { pnStatusCategory = PNStatusCategory.PNAccessDeniedCategory; + + if (responseBodyPayload != null && responseBodyPayload.has("channels")) { + for (final JsonNode objNode : responseBodyPayload.get("channels")) { + affectedChannels.add(objNode.asText()); + } + } + + if (responseBodyPayload != null && responseBodyPayload.has("channel-groups")) { + for (final JsonNode objNode : responseBodyPayload.get("channel-groups")) { + affectedChannelGroups.add(objNode.asText().substring(1)); + } + } + } if (response.code() == SERVER_RESPONSE_BAD_REQUEST) { pnStatusCategory = PNStatusCategory.PNBadRequestCategory; } - callback.onResponse(null, createStatusResponse(pnStatusCategory, response, ex)); + callback.onResponse(null, createStatusResponse(pnStatusCategory, response, ex, affectedChannels, affectedChannelGroups)); return; } try { callbackResponse = createResponse(response); } catch (PubNubException pubnubException) { - callback.onResponse(null, createStatusResponse(PNStatusCategory.PNMalformedResponseCategory, response, pubnubException)); + callback.onResponse(null, createStatusResponse(PNStatusCategory.PNMalformedResponseCategory, response, pubnubException, null, null)); return; } - callback.onResponse(callbackResponse, createStatusResponse(PNStatusCategory.PNAcknowledgmentCategory, response, null)); + callback.onResponse(callbackResponse, createStatusResponse(PNStatusCategory.PNAcknowledgmentCategory, response, null, null, null)); } @Override @@ -193,7 +214,7 @@ public void onFailure(final Call performedCall, final Throwable throwable pubnubException.pubnubError(PubNubErrorBuilder.PNERROBJ_HTTP_ERROR); } - callback.onResponse(null, createStatusResponse(pnStatusCategory, null, pubnubException.build())); + callback.onResponse(null, createStatusResponse(pnStatusCategory, null, pubnubException.build(), null, null)); } }); @@ -214,7 +235,7 @@ public void silentCancel() { } } - private PNStatus createStatusResponse(PNStatusCategory category, Response response, Exception throwable) { + private PNStatus createStatusResponse(PNStatusCategory category, Response response, Exception throwable, ArrayList errorChannels, ArrayList errorChannelGroups) { PNStatus.PNStatusBuilder pnStatus = PNStatus.builder(); pnStatus.executedEndpoint(this); @@ -239,8 +260,18 @@ private PNStatus createStatusResponse(PNStatusCategory category, Response pnStatus.operation(getOperationType()); pnStatus.category(category); - pnStatus.affectedChannels(getAffectedChannels()); - pnStatus.affectedChannelGroups(getAffectedChannelGroups()); + + if (errorChannels != null && !errorChannels.isEmpty()) { + pnStatus.affectedChannels(errorChannels); + } else { + pnStatus.affectedChannels(getAffectedChannels()); + } + + if (errorChannelGroups != null && !errorChannelGroups.isEmpty()) { + pnStatus.affectedChannelGroups(errorChannelGroups); + } else { + pnStatus.affectedChannelGroups(getAffectedChannelGroups()); + } return pnStatus.build(); } From 59c434880d050d76ef61782cb1a0ca944daddab7 Mon Sep 17 00:00:00 2001 From: Martin Lagrange Date: Mon, 19 Sep 2016 11:15:14 -0700 Subject: [PATCH 3/4] Adjust affectedChannelGroups and add test --- .../com/pubnub/api/endpoints/Endpoint.java | 3 +- .../api/managers/SubscriptionManagerTest.java | 34 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/pubnub/api/endpoints/Endpoint.java b/src/main/java/com/pubnub/api/endpoints/Endpoint.java index cdcd6302b..efb4f6201 100644 --- a/src/main/java/com/pubnub/api/endpoints/Endpoint.java +++ b/src/main/java/com/pubnub/api/endpoints/Endpoint.java @@ -165,7 +165,8 @@ public void onResponse(final Call performedCall, final Response re if (responseBodyPayload != null && responseBodyPayload.has("channel-groups")) { for (final JsonNode objNode : responseBodyPayload.get("channel-groups")) { - affectedChannelGroups.add(objNode.asText().substring(1)); + String channelGroupName = objNode.asText().substring(0, 1).equals(":") ? objNode.asText().substring(1) : objNode.asText(); + affectedChannelGroups.add(channelGroupName); } } diff --git a/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java b/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java index 7ec7ec641..f2e084cf2 100644 --- a/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java +++ b/src/test/java/com/pubnub/api/managers/SubscriptionManagerTest.java @@ -140,6 +140,40 @@ public void presence(PubNub pubnub, PNPresenceEventResult presence) { } + @Test + public void testSubscribeBuilderWithAccessManager403Error() { + final AtomicInteger gotStatus = new AtomicInteger(); + stubFor(get(urlPathEqualTo("/v2/subscribe/mySubscribeKey/ch2,ch1/0")) + .willReturn(aResponse().withStatus(403).withBody("{\"message\":\"Forbidden\",\"payload\":{\"channels\":[\"ch1\", \"ch2\"], \"channel-groups\":[\":cg1\", \":cg2\"]},\"error\":true,\"service\":\"Access Manager\",\"status\":403}"))); + + pubnub.addListener(new SubscribeCallback() { + @Override + public void status(PubNub pubnub, PNStatus status) { + + if (status.getCategory() == PNStatusCategory.PNAccessDeniedCategory) { + + assertEquals(PNStatusCategory.PNAccessDeniedCategory, status.getCategory()); + assertEquals(Arrays.asList(new String[]{"ch1","ch2"}), status.getAffectedChannels()); + assertEquals(Arrays.asList(new String[]{"cg1","cg2"}), status.getAffectedChannelGroups()); + gotStatus.addAndGet(1); + } + } + + @Override + public void message(PubNub pubnub, PNMessageResult message) { + } + + @Override + public void presence(PubNub pubnub, PNPresenceEventResult presence) { + } + }); + + + pubnub.subscribe().channels(Arrays.asList("ch1", "ch2")).execute(); + + Awaitility.await().atMost(2, TimeUnit.SECONDS).untilAtomic(gotStatus, org.hamcrest.core.IsEqual.equalTo(1)); + } + @Test public void testNamingSubscribeChannelGroupBuilder() { final AtomicInteger gotStatus = new AtomicInteger(); From 8d159583cc522eeabe381c7dd761dc900b799b21 Mon Sep 17 00:00:00 2001 From: Max Presman Date: Mon, 19 Sep 2016 15:48:15 -0700 Subject: [PATCH 4/4] 4.0.14 --- .pubnub.yml | 7 +- CHANGELOG.md | 10 +++ build.gradle | 2 +- docs/allclasses-frame.html | 6 +- docs/allclasses-noframe.html | 6 +- docs/com/pubnub/api/PNConfiguration.html | 8 +- docs/com/pubnub/api/PubNub.html | 78 +++++++++++-------- docs/com/pubnub/api/PubNubError.html | 8 +- docs/com/pubnub/api/PubNubException.html | 8 +- docs/com/pubnub/api/PubNubUtil.html | 8 +- .../api/builder/PubNubErrorBuilder.html | 8 +- .../com/pubnub/api/builder/PubSubBuilder.html | 8 +- .../pubnub/api/builder/SubscribeBuilder.html | 8 +- .../api/builder/UnsubscribeBuilder.html | 8 +- .../api/builder/dto/StateOperation.html | 8 +- .../api/builder/dto/SubscribeOperation.html | 8 +- .../api/builder/dto/UnsubscribeOperation.html | 8 +- .../pubnub/api/builder/dto/package-frame.html | 6 +- .../api/builder/dto/package-summary.html | 8 +- .../pubnub/api/builder/dto/package-tree.html | 8 +- .../com/pubnub/api/builder/package-frame.html | 6 +- .../pubnub/api/builder/package-summary.html | 8 +- docs/com/pubnub/api/builder/package-tree.html | 8 +- docs/com/pubnub/api/callbacks/PNCallback.html | 8 +- .../api/callbacks/ReconnectionCallback.html | 8 +- .../api/callbacks/SubscribeCallback.html | 8 +- .../pubnub/api/callbacks/TimeCallback.html | 8 +- .../api/callbacks/WhereNowCallback.html | 8 +- .../pubnub/api/callbacks/package-frame.html | 6 +- .../pubnub/api/callbacks/package-summary.html | 8 +- .../pubnub/api/callbacks/package-tree.html | 8 +- .../core/models/server/PresenceMessage.html | 8 +- .../api/core/models/server/package-frame.html | 6 +- .../core/models/server/package-summary.html | 8 +- .../api/core/models/server/package-tree.html | 8 +- docs/com/pubnub/api/endpoints/Endpoint.html | 8 +- docs/com/pubnub/api/endpoints/History.html | 8 +- docs/com/pubnub/api/endpoints/Time.html | 8 +- .../access/AccessManagerService.html | 8 +- .../pubnub/api/endpoints/access/Audit.html | 8 +- .../pubnub/api/endpoints/access/Grant.html | 8 +- .../api/endpoints/access/package-frame.html | 6 +- .../api/endpoints/access/package-summary.html | 8 +- .../api/endpoints/access/package-tree.html | 8 +- .../AddChannelChannelGroup.html | 8 +- .../AllChannelsChannelGroup.html | 8 +- .../channel_groups/ChannelGroupService.html | 8 +- .../channel_groups/DeleteChannelGroup.html | 8 +- .../channel_groups/ListAllChannelGroup.html | 8 +- .../RemoveChannelChannelGroup.html | 8 +- .../channel_groups/package-frame.html | 6 +- .../channel_groups/package-summary.html | 8 +- .../channel_groups/package-tree.html | 8 +- .../pubnub/api/endpoints/package-frame.html | 6 +- .../pubnub/api/endpoints/package-summary.html | 8 +- .../pubnub/api/endpoints/package-tree.html | 8 +- .../api/endpoints/presence/GetState.html | 8 +- .../api/endpoints/presence/Heartbeat.html | 8 +- .../api/endpoints/presence/HereNow.html | 8 +- .../pubnub/api/endpoints/presence/Leave.html | 8 +- .../endpoints/presence/PresenceService.html | 8 +- .../api/endpoints/presence/SetState.html | 8 +- .../api/endpoints/presence/WhereNow.html | 8 +- .../api/endpoints/presence/package-frame.html | 6 +- .../endpoints/presence/package-summary.html | 8 +- .../api/endpoints/presence/package-tree.html | 8 +- .../api/endpoints/pubsub/PubSubService.html | 8 +- .../pubnub/api/endpoints/pubsub/Publish.html | 8 +- .../api/endpoints/pubsub/Subscribe.html | 8 +- .../api/endpoints/pubsub/package-frame.html | 6 +- .../api/endpoints/pubsub/package-summary.html | 8 +- .../api/endpoints/pubsub/package-tree.html | 8 +- .../api/endpoints/push/AddChannelsToPush.html | 8 +- .../endpoints/push/ListPushProvisions.html | 8 +- .../api/endpoints/push/PushService.html | 8 +- .../push/RemoveAllPushChannelsForDevice.html | 8 +- .../push/RemoveChannelsFromPush.html | 8 +- .../api/endpoints/push/package-frame.html | 6 +- .../api/endpoints/push/package-summary.html | 8 +- .../api/endpoints/push/package-tree.html | 8 +- .../enums/PNHeartbeatNotificationOptions.html | 8 +- docs/com/pubnub/api/enums/PNLogVerbosity.html | 8 +- .../com/pubnub/api/enums/PNOperationType.html | 8 +- docs/com/pubnub/api/enums/PNPushType.html | 8 +- .../api/enums/PNReconnectionPolicy.html | 8 +- .../pubnub/api/enums/PNStatusCategory.html | 8 +- docs/com/pubnub/api/enums/package-frame.html | 6 +- .../com/pubnub/api/enums/package-summary.html | 8 +- docs/com/pubnub/api/enums/package-tree.html | 12 +-- .../pubnub/api/managers/BasePathManager.html | 8 +- .../pubnub/api/managers/ListenerManager.html | 8 +- .../api/managers/PublishSequenceManager.html | 8 +- .../api/managers/ReconnectionManager.html | 8 +- .../pubnub/api/managers/RetrofitManager.html | 20 +++-- .../com/pubnub/api/managers/StateManager.html | 8 +- .../api/managers/SubscriptionManager.html | 8 +- .../pubnub/api/managers/package-frame.html | 6 +- .../pubnub/api/managers/package-summary.html | 8 +- .../com/pubnub/api/managers/package-tree.html | 8 +- .../pubnub/api/models/SubscriptionItem.html | 8 +- .../api/models/consumer/PNErrorData.html | 8 +- .../api/models/consumer/PNPublishResult.html | 8 +- .../pubnub/api/models/consumer/PNStatus.html | 8 +- .../api/models/consumer/PNTimeResult.html | 8 +- .../PNAccessManagerAuditResult.html | 8 +- .../PNAccessManagerGrantResult.html | 8 +- .../PNAccessManagerKeyData.html | 8 +- .../PNAccessManagerKeysData.html | 8 +- .../access_manager/package-frame.html | 6 +- .../access_manager/package-summary.html | 8 +- .../consumer/access_manager/package-tree.html | 8 +- .../PNChannelGroupsAddChannelResult.html | 8 +- .../PNChannelGroupsAllChannelsResult.html | 8 +- .../PNChannelGroupsDeleteGroupResult.html | 8 +- .../PNChannelGroupsListAllResult.html | 8 +- .../PNChannelGroupsRemoveChannelResult.html | 8 +- .../consumer/channel_group/package-frame.html | 6 +- .../channel_group/package-summary.html | 8 +- .../consumer/channel_group/package-tree.html | 8 +- .../consumer/history/PNHistoryItemResult.html | 8 +- .../consumer/history/PNHistoryResult.html | 8 +- .../consumer/history/package-frame.html | 6 +- .../consumer/history/package-summary.html | 8 +- .../models/consumer/history/package-tree.html | 8 +- .../api/models/consumer/package-frame.html | 6 +- .../api/models/consumer/package-summary.html | 8 +- .../api/models/consumer/package-tree.html | 8 +- .../consumer/presence/PNGetStateResult.html | 8 +- .../presence/PNHereNowChannelData.html | 8 +- .../presence/PNHereNowOccupantData.html | 8 +- .../consumer/presence/PNHereNowResult.html | 8 +- .../consumer/presence/PNSetStateResult.html | 8 +- .../consumer/presence/PNWhereNowResult.html | 8 +- .../consumer/presence/package-frame.html | 6 +- .../consumer/presence/package-summary.html | 8 +- .../consumer/presence/package-tree.html | 8 +- .../consumer/pubsub/PNMessageResult.html | 8 +- .../pubsub/PNPresenceEventResult.html | 8 +- .../models/consumer/pubsub/package-frame.html | 6 +- .../consumer/pubsub/package-summary.html | 8 +- .../models/consumer/pubsub/package-tree.html | 8 +- .../consumer/push/PNPushAddChannelResult.html | 8 +- .../push/PNPushListProvisionsResult.html | 8 +- .../push/PNPushRemoveAllChannelsResult.html | 8 +- .../push/PNPushRemoveChannelResult.html | 8 +- .../models/consumer/push/package-frame.html | 6 +- .../models/consumer/push/package-summary.html | 8 +- .../models/consumer/push/package-tree.html | 8 +- docs/com/pubnub/api/models/package-frame.html | 6 +- .../pubnub/api/models/package-summary.html | 8 +- docs/com/pubnub/api/models/package-tree.html | 8 +- .../pubnub/api/models/server/Envelope.html | 8 +- .../models/server/OriginationMetaData.html | 8 +- .../api/models/server/PresenceEnvelope.html | 8 +- .../api/models/server/PublishMetaData.html | 8 +- .../api/models/server/SubscribeEnvelope.html | 8 +- .../api/models/server/SubscribeMessage.html | 8 +- .../api/models/server/SubscribeMetadata.html | 8 +- .../AccessManagerAuditPayload.html | 8 +- .../AccessManagerGrantPayload.html | 8 +- .../server/access_manager/package-frame.html | 6 +- .../access_manager/package-summary.html | 8 +- .../server/access_manager/package-tree.html | 8 +- .../api/models/server/package-frame.html | 6 +- .../api/models/server/package-summary.html | 8 +- .../api/models/server/package-tree.html | 8 +- .../server/presence/WhereNowPayload.html | 8 +- .../models/server/presence/package-frame.html | 6 +- .../server/presence/package-summary.html | 8 +- .../models/server/presence/package-tree.html | 8 +- docs/com/pubnub/api/package-frame.html | 6 +- docs/com/pubnub/api/package-summary.html | 8 +- docs/com/pubnub/api/package-tree.html | 8 +- docs/com/pubnub/api/vendor/Base64.html | 8 +- docs/com/pubnub/api/vendor/Crypto.html | 8 +- docs/com/pubnub/api/vendor/package-frame.html | 6 +- .../pubnub/api/vendor/package-summary.html | 8 +- docs/com/pubnub/api/vendor/package-tree.html | 8 +- .../api/workers/SubscribeMessageWorker.html | 8 +- .../com/pubnub/api/workers/package-frame.html | 6 +- .../pubnub/api/workers/package-summary.html | 8 +- docs/com/pubnub/api/workers/package-tree.html | 8 +- docs/constant-values.html | 8 +- docs/deprecated-list.html | 8 +- docs/help-doc.html | 8 +- docs/index-all.html | 16 ++-- docs/index.html | 4 +- docs/overview-frame.html | 6 +- docs/overview-summary.html | 10 +-- docs/overview-tree.html | 8 +- docs/serialized-form.html | 8 +- src/main/java/com/pubnub/api/PubNub.java | 2 +- src/test/java/com/pubnub/api/PubNubTest.java | 2 +- 193 files changed, 797 insertions(+), 764 deletions(-) diff --git a/.pubnub.yml b/.pubnub.yml index 948169564..d4531d829 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,8 +1,13 @@ name: java -version: 4.0.13 +version: 4.0.14 schema: 1 scm: github.com/pubnub/java changelog: + - version: v4.0.14 + date: + changes: + - type: improvement + text: on PAM error, populate the affectedChannel or affectedChannelGroup to signal which channels are failing - version: v4.0.13 date: changes: diff --git a/CHANGELOG.md b/CHANGELOG.md index 400a79072..1e11019c2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,14 @@ +## [v4.0.14](https://github.com/pubnub/java/tree/v4.0.14) + + + [Full Changelog](https://github.com/pubnub/java/compare/v4.0.13...v4.0.14) + + +- ⭐on PAM error, populate the affectedChannel or affectedChannelGroup to signal which channels are failing + + + ## [v4.0.13](https://github.com/pubnub/java/tree/v4.0.13) diff --git a/build.gradle b/build.gradle index c093e5803..34ebe9abf 100644 --- a/build.gradle +++ b/build.gradle @@ -10,7 +10,7 @@ plugins { id 'findbugs' } group = 'com.pubnub' -version = '4.0.13' +version = '4.0.14' description = """""" diff --git a/docs/allclasses-frame.html b/docs/allclasses-frame.html index 35c5a0ce8..352851be6 100644 --- a/docs/allclasses-frame.html +++ b/docs/allclasses-frame.html @@ -2,9 +2,9 @@ - -All Classes (pubnub 4.0.13 API) - + +All Classes (pubnub 4.0.14 API) + diff --git a/docs/allclasses-noframe.html b/docs/allclasses-noframe.html index f56841af9..166b3258e 100644 --- a/docs/allclasses-noframe.html +++ b/docs/allclasses-noframe.html @@ -2,9 +2,9 @@ - -All Classes (pubnub 4.0.13 API) - + +All Classes (pubnub 4.0.14 API) + diff --git a/docs/com/pubnub/api/PNConfiguration.html b/docs/com/pubnub/api/PNConfiguration.html index 391b22595..dac6d53b8 100644 --- a/docs/com/pubnub/api/PNConfiguration.html +++ b/docs/com/pubnub/api/PNConfiguration.html @@ -2,9 +2,9 @@ - -PNConfiguration (pubnub 4.0.13 API) - + +PNConfiguration (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,13 +12,13 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/builder/dto/package-summary.html b/docs/com/pubnub/api/builder/dto/package-summary.html index d3ae180bd..8f9feb0d6 100644 --- a/docs/com/pubnub/api/builder/dto/package-summary.html +++ b/docs/com/pubnub/api/builder/dto/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.builder.dto (pubnub 4.0.13 API) - + +com.pubnub.api.builder.dto (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/builder/package-summary.html b/docs/com/pubnub/api/builder/package-summary.html index c16ed5a8a..47283d99a 100644 --- a/docs/com/pubnub/api/builder/package-summary.html +++ b/docs/com/pubnub/api/builder/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.builder (pubnub 4.0.13 API) - + +com.pubnub.api.builder (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/callbacks/package-summary.html b/docs/com/pubnub/api/callbacks/package-summary.html index 9f7495943..ac9a2df43 100644 --- a/docs/com/pubnub/api/callbacks/package-summary.html +++ b/docs/com/pubnub/api/callbacks/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.callbacks (pubnub 4.0.13 API) - + +com.pubnub.api.callbacks (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/core/models/server/package-summary.html b/docs/com/pubnub/api/core/models/server/package-summary.html index 03ab7649a..55ea28b4b 100644 --- a/docs/com/pubnub/api/core/models/server/package-summary.html +++ b/docs/com/pubnub/api/core/models/server/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.core.models.server (pubnub 4.0.13 API) - + +com.pubnub.api.core.models.server (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/endpoints/access/package-summary.html b/docs/com/pubnub/api/endpoints/access/package-summary.html index 05a1e6ded..cc0cb4feb 100644 --- a/docs/com/pubnub/api/endpoints/access/package-summary.html +++ b/docs/com/pubnub/api/endpoints/access/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.endpoints.access (pubnub 4.0.13 API) - + +com.pubnub.api.endpoints.access (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/endpoints/channel_groups/package-summary.html b/docs/com/pubnub/api/endpoints/channel_groups/package-summary.html index df0e8a88e..5b6b0805e 100644 --- a/docs/com/pubnub/api/endpoints/channel_groups/package-summary.html +++ b/docs/com/pubnub/api/endpoints/channel_groups/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.endpoints.channel_groups (pubnub 4.0.13 API) - + +com.pubnub.api.endpoints.channel_groups (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/endpoints/package-summary.html b/docs/com/pubnub/api/endpoints/package-summary.html index 332fcef6c..3e8fa7104 100644 --- a/docs/com/pubnub/api/endpoints/package-summary.html +++ b/docs/com/pubnub/api/endpoints/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.endpoints (pubnub 4.0.13 API) - + +com.pubnub.api.endpoints (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/endpoints/presence/package-summary.html b/docs/com/pubnub/api/endpoints/presence/package-summary.html index c5a5a0c29..3712a7592 100644 --- a/docs/com/pubnub/api/endpoints/presence/package-summary.html +++ b/docs/com/pubnub/api/endpoints/presence/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.endpoints.presence (pubnub 4.0.13 API) - + +com.pubnub.api.endpoints.presence (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/endpoints/pubsub/package-summary.html b/docs/com/pubnub/api/endpoints/pubsub/package-summary.html index 614af9074..8c67dc4b0 100644 --- a/docs/com/pubnub/api/endpoints/pubsub/package-summary.html +++ b/docs/com/pubnub/api/endpoints/pubsub/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.endpoints.pubsub (pubnub 4.0.13 API) - + +com.pubnub.api.endpoints.pubsub (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/endpoints/push/package-summary.html b/docs/com/pubnub/api/endpoints/push/package-summary.html index d14ef90f0..f18cbe5b3 100644 --- a/docs/com/pubnub/api/endpoints/push/package-summary.html +++ b/docs/com/pubnub/api/endpoints/push/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.endpoints.push (pubnub 4.0.13 API) - + +com.pubnub.api.endpoints.push (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/enums/package-summary.html b/docs/com/pubnub/api/enums/package-summary.html index 449f42053..6348d65f2 100644 --- a/docs/com/pubnub/api/enums/package-summary.html +++ b/docs/com/pubnub/api/enums/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.enums (pubnub 4.0.13 API) - + +com.pubnub.api.enums (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/managers/package-summary.html b/docs/com/pubnub/api/managers/package-summary.html index beea8f07b..856a897e1 100644 --- a/docs/com/pubnub/api/managers/package-summary.html +++ b/docs/com/pubnub/api/managers/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.managers (pubnub 4.0.13 API) - + +com.pubnub.api.managers (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/access_manager/package-summary.html b/docs/com/pubnub/api/models/consumer/access_manager/package-summary.html index e989fbaf1..167c444c4 100644 --- a/docs/com/pubnub/api/models/consumer/access_manager/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/access_manager/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer.access_manager (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer.access_manager (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/channel_group/package-summary.html b/docs/com/pubnub/api/models/consumer/channel_group/package-summary.html index 7296ecabe..0e2b0f1d0 100644 --- a/docs/com/pubnub/api/models/consumer/channel_group/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/channel_group/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer.channel_group (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer.channel_group (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/history/package-summary.html b/docs/com/pubnub/api/models/consumer/history/package-summary.html index 04f9ea938..98bfad641 100644 --- a/docs/com/pubnub/api/models/consumer/history/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/history/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer.history (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer.history (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/package-summary.html b/docs/com/pubnub/api/models/consumer/package-summary.html index 961912ef1..e9df26ee8 100644 --- a/docs/com/pubnub/api/models/consumer/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/presence/package-summary.html b/docs/com/pubnub/api/models/consumer/presence/package-summary.html index 0f81a7d15..fe84ac1fe 100644 --- a/docs/com/pubnub/api/models/consumer/presence/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/presence/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer.presence (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer.presence (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/pubsub/package-summary.html b/docs/com/pubnub/api/models/consumer/pubsub/package-summary.html index 8488544c4..9c41cf51c 100644 --- a/docs/com/pubnub/api/models/consumer/pubsub/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/pubsub/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer.pubsub (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer.pubsub (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/consumer/push/package-summary.html b/docs/com/pubnub/api/models/consumer/push/package-summary.html index c7dcf7736..039c028a2 100644 --- a/docs/com/pubnub/api/models/consumer/push/package-summary.html +++ b/docs/com/pubnub/api/models/consumer/push/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.consumer.push (pubnub 4.0.13 API) - + +com.pubnub.api.models.consumer.push (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/package-summary.html b/docs/com/pubnub/api/models/package-summary.html index 87ab374b8..9ed8becf4 100644 --- a/docs/com/pubnub/api/models/package-summary.html +++ b/docs/com/pubnub/api/models/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models (pubnub 4.0.13 API) - + +com.pubnub.api.models (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/server/access_manager/package-summary.html b/docs/com/pubnub/api/models/server/access_manager/package-summary.html index be7701083..fb25dc506 100644 --- a/docs/com/pubnub/api/models/server/access_manager/package-summary.html +++ b/docs/com/pubnub/api/models/server/access_manager/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.server.access_manager (pubnub 4.0.13 API) - + +com.pubnub.api.models.server.access_manager (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/server/package-summary.html b/docs/com/pubnub/api/models/server/package-summary.html index e02681b21..8a8b234a9 100644 --- a/docs/com/pubnub/api/models/server/package-summary.html +++ b/docs/com/pubnub/api/models/server/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.server (pubnub 4.0.13 API) - + +com.pubnub.api.models.server (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/models/server/presence/package-summary.html b/docs/com/pubnub/api/models/server/presence/package-summary.html index 7508bc8a0..b90219d3e 100644 --- a/docs/com/pubnub/api/models/server/presence/package-summary.html +++ b/docs/com/pubnub/api/models/server/presence/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.models.server.presence (pubnub 4.0.13 API) - + +com.pubnub.api.models.server.presence (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/package-summary.html b/docs/com/pubnub/api/package-summary.html index 3e653f94f..d9d8558af 100644 --- a/docs/com/pubnub/api/package-summary.html +++ b/docs/com/pubnub/api/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api (pubnub 4.0.13 API) - + +com.pubnub.api (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/vendor/package-summary.html b/docs/com/pubnub/api/vendor/package-summary.html index 334bf249c..39fbc47f9 100644 --- a/docs/com/pubnub/api/vendor/package-summary.html +++ b/docs/com/pubnub/api/vendor/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.vendor (pubnub 4.0.13 API) - + +com.pubnub.api.vendor (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/com/pubnub/api/workers/package-summary.html b/docs/com/pubnub/api/workers/package-summary.html index 3a2781d1c..84b53ef6d 100644 --- a/docs/com/pubnub/api/workers/package-summary.html +++ b/docs/com/pubnub/api/workers/package-summary.html @@ -2,9 +2,9 @@ - -com.pubnub.api.workers (pubnub 4.0.13 API) - + +com.pubnub.api.workers (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ diff --git a/docs/overview-summary.html b/docs/overview-summary.html index 54f740159..e4b493410 100644 --- a/docs/overview-summary.html +++ b/docs/overview-summary.html @@ -2,9 +2,9 @@ - -Overview (pubnub 4.0.13 API) - + +Overview (pubnub 4.0.14 API) + @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@ @@ -12,7 +12,7 @@