@celerispay/hazelcast-client 3.12.5-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.nvmrc +1 -0
- package/CHANGELOG.md +140 -0
- package/CONFIG.md +503 -0
- package/FAILOVER_FIXES.md +202 -0
- package/LICENSE +202 -0
- package/QUICK_START.md +232 -0
- package/README.md +178 -0
- package/RELEASE_SUMMARY.md +260 -0
- package/config-schema.json +343 -0
- package/hazelcast-client-default.json +56 -0
- package/hazelcast-client-full.json +137 -0
- package/lib/Address.d.ts +17 -0
- package/lib/Address.js +65 -0
- package/lib/BitsUtil.d.ts +69 -0
- package/lib/BitsUtil.js +202 -0
- package/lib/BuildInfo.d.ts +9 -0
- package/lib/BuildInfo.js +53 -0
- package/lib/ClientInfo.d.ts +15 -0
- package/lib/ClientInfo.js +27 -0
- package/lib/ClientMessage.d.ts +52 -0
- package/lib/ClientMessage.js +217 -0
- package/lib/ClusterDataFactory.d.ts +4 -0
- package/lib/ClusterDataFactory.js +31 -0
- package/lib/ClusterDataFactoryHelper.d.ts +5 -0
- package/lib/ClusterDataFactoryHelper.js +26 -0
- package/lib/DataStoreHashMap.d.ts +20 -0
- package/lib/DataStoreHashMap.js +112 -0
- package/lib/DistributedObject.d.ts +22 -0
- package/lib/DistributedObject.js +17 -0
- package/lib/HazelcastClient.d.ts +201 -0
- package/lib/HazelcastClient.js +370 -0
- package/lib/HazelcastError.d.ts +114 -0
- package/lib/HazelcastError.js +389 -0
- package/lib/HeartbeatService.d.ts +30 -0
- package/lib/HeartbeatService.js +108 -0
- package/lib/LifecycleService.d.ts +32 -0
- package/lib/LifecycleService.js +105 -0
- package/lib/ListenerMessageCodec.d.ts +6 -0
- package/lib/ListenerMessageCodec.js +17 -0
- package/lib/ListenerService.d.ts +35 -0
- package/lib/ListenerService.js +233 -0
- package/lib/LockReferenceIdGenerator.d.ts +6 -0
- package/lib/LockReferenceIdGenerator.js +29 -0
- package/lib/PartitionService.d.ts +55 -0
- package/lib/PartitionService.js +160 -0
- package/lib/Util.d.ts +47 -0
- package/lib/Util.js +351 -0
- package/lib/aggregation/Aggregator.d.ts +74 -0
- package/lib/aggregation/Aggregator.js +277 -0
- package/lib/aggregation/AggregatorFactory.d.ts +26 -0
- package/lib/aggregation/AggregatorFactory.js +66 -0
- package/lib/aggregation/Aggregators.d.ts +96 -0
- package/lib/aggregation/Aggregators.js +149 -0
- package/lib/codec/AddressCodec.d.ts +6 -0
- package/lib/codec/AddressCodec.js +33 -0
- package/lib/codec/AtomicLongAddAndGetCodec.d.ts +7 -0
- package/lib/codec/AtomicLongAddAndGetCodec.js +56 -0
- package/lib/codec/AtomicLongCompareAndSetCodec.d.ts +7 -0
- package/lib/codec/AtomicLongCompareAndSetCodec.js +58 -0
- package/lib/codec/AtomicLongDecrementAndGetCodec.d.ts +7 -0
- package/lib/codec/AtomicLongDecrementAndGetCodec.js +54 -0
- package/lib/codec/AtomicLongGetAndAddCodec.d.ts +7 -0
- package/lib/codec/AtomicLongGetAndAddCodec.js +56 -0
- package/lib/codec/AtomicLongGetAndIncrementCodec.d.ts +7 -0
- package/lib/codec/AtomicLongGetAndIncrementCodec.js +54 -0
- package/lib/codec/AtomicLongGetAndSetCodec.d.ts +7 -0
- package/lib/codec/AtomicLongGetAndSetCodec.js +56 -0
- package/lib/codec/AtomicLongGetCodec.d.ts +7 -0
- package/lib/codec/AtomicLongGetCodec.js +54 -0
- package/lib/codec/AtomicLongIncrementAndGetCodec.d.ts +7 -0
- package/lib/codec/AtomicLongIncrementAndGetCodec.js +54 -0
- package/lib/codec/AtomicLongMessageType.d.ts +15 -0
- package/lib/codec/AtomicLongMessageType.js +37 -0
- package/lib/codec/AtomicLongSetCodec.d.ts +5 -0
- package/lib/codec/AtomicLongSetCodec.js +47 -0
- package/lib/codec/ClientAddDistributedObjectListenerCodec.d.ts +8 -0
- package/lib/codec/ClientAddDistributedObjectListenerCodec.js +74 -0
- package/lib/codec/ClientAddMembershipListenerCodec.d.ts +8 -0
- package/lib/codec/ClientAddMembershipListenerCodec.js +107 -0
- package/lib/codec/ClientAuthenticationCodec.d.ts +7 -0
- package/lib/codec/ClientAuthenticationCodec.js +114 -0
- package/lib/codec/ClientAuthenticationCustomCodec.d.ts +7 -0
- package/lib/codec/ClientAuthenticationCustomCodec.js +112 -0
- package/lib/codec/ClientCreateProxyCodec.d.ts +6 -0
- package/lib/codec/ClientCreateProxyCodec.js +50 -0
- package/lib/codec/ClientDestroyProxyCodec.d.ts +5 -0
- package/lib/codec/ClientDestroyProxyCodec.js +47 -0
- package/lib/codec/ClientGetDistributedObjectsCodec.d.ts +7 -0
- package/lib/codec/ClientGetDistributedObjectsCodec.js +59 -0
- package/lib/codec/ClientMessageType.d.ts +18 -0
- package/lib/codec/ClientMessageType.js +40 -0
- package/lib/codec/ClientPingCodec.d.ts +5 -0
- package/lib/codec/ClientPingCodec.js +42 -0
- package/lib/codec/ClientRemoveDistributedObjectListenerCodec.d.ts +7 -0
- package/lib/codec/ClientRemoveDistributedObjectListenerCodec.js +54 -0
- package/lib/codec/ClientStatisticsCodec.d.ts +5 -0
- package/lib/codec/ClientStatisticsCodec.js +42 -0
- package/lib/codec/DistributedObjectInfoCodec.d.ts +5 -0
- package/lib/codec/DistributedObjectInfoCodec.js +27 -0
- package/lib/codec/EntryViewCodec.d.ts +7 -0
- package/lib/codec/EntryViewCodec.js +56 -0
- package/lib/codec/FlakeIdGeneratorMessageType.d.ts +3 -0
- package/lib/codec/FlakeIdGeneratorMessageType.js +25 -0
- package/lib/codec/FlakeIdGeneratorNewIdBatchCodec.d.ts +7 -0
- package/lib/codec/FlakeIdGeneratorNewIdBatchCodec.js +60 -0
- package/lib/codec/GetPartitionsCodec.d.ts +9 -0
- package/lib/codec/GetPartitionsCodec.js +45 -0
- package/lib/codec/ListAddAllCodec.d.ts +7 -0
- package/lib/codec/ListAddAllCodec.js +62 -0
- package/lib/codec/ListAddAllWithIndexCodec.d.ts +7 -0
- package/lib/codec/ListAddAllWithIndexCodec.js +64 -0
- package/lib/codec/ListAddCodec.d.ts +7 -0
- package/lib/codec/ListAddCodec.js +56 -0
- package/lib/codec/ListAddListenerCodec.d.ts +8 -0
- package/lib/codec/ListAddListenerCodec.js +80 -0
- package/lib/codec/ListAddWithIndexCodec.d.ts +6 -0
- package/lib/codec/ListAddWithIndexCodec.js +49 -0
- package/lib/codec/ListClearCodec.d.ts +5 -0
- package/lib/codec/ListClearCodec.js +45 -0
- package/lib/codec/ListCompareAndRemoveAllCodec.d.ts +7 -0
- package/lib/codec/ListCompareAndRemoveAllCodec.js +62 -0
- package/lib/codec/ListCompareAndRetainAllCodec.d.ts +7 -0
- package/lib/codec/ListCompareAndRetainAllCodec.js +62 -0
- package/lib/codec/ListContainsAllCodec.d.ts +7 -0
- package/lib/codec/ListContainsAllCodec.js +62 -0
- package/lib/codec/ListContainsCodec.d.ts +7 -0
- package/lib/codec/ListContainsCodec.js +56 -0
- package/lib/codec/ListGetAllCodec.d.ts +7 -0
- package/lib/codec/ListGetAllCodec.js +61 -0
- package/lib/codec/ListGetCodec.d.ts +7 -0
- package/lib/codec/ListGetCodec.js +58 -0
- package/lib/codec/ListIndexOfCodec.d.ts +7 -0
- package/lib/codec/ListIndexOfCodec.js +56 -0
- package/lib/codec/ListIsEmptyCodec.d.ts +7 -0
- package/lib/codec/ListIsEmptyCodec.js +54 -0
- package/lib/codec/ListLastIndexOfCodec.d.ts +7 -0
- package/lib/codec/ListLastIndexOfCodec.js +56 -0
- package/lib/codec/ListMessageType.d.ts +25 -0
- package/lib/codec/ListMessageType.js +47 -0
- package/lib/codec/ListRemoveCodec.d.ts +7 -0
- package/lib/codec/ListRemoveCodec.js +56 -0
- package/lib/codec/ListRemoveListenerCodec.d.ts +7 -0
- package/lib/codec/ListRemoveListenerCodec.js +56 -0
- package/lib/codec/ListRemoveWithIndexCodec.d.ts +7 -0
- package/lib/codec/ListRemoveWithIndexCodec.js +58 -0
- package/lib/codec/ListSetCodec.d.ts +7 -0
- package/lib/codec/ListSetCodec.js +60 -0
- package/lib/codec/ListSizeCodec.d.ts +7 -0
- package/lib/codec/ListSizeCodec.js +54 -0
- package/lib/codec/ListSubCodec.d.ts +7 -0
- package/lib/codec/ListSubCodec.js +65 -0
- package/lib/codec/LockForceUnlockCodec.d.ts +5 -0
- package/lib/codec/LockForceUnlockCodec.js +47 -0
- package/lib/codec/LockGetLockCountCodec.d.ts +7 -0
- package/lib/codec/LockGetLockCountCodec.js +54 -0
- package/lib/codec/LockGetRemainingLeaseTimeCodec.d.ts +7 -0
- package/lib/codec/LockGetRemainingLeaseTimeCodec.js +54 -0
- package/lib/codec/LockIsLockedByCurrentThreadCodec.d.ts +7 -0
- package/lib/codec/LockIsLockedByCurrentThreadCodec.js +56 -0
- package/lib/codec/LockIsLockedCodec.d.ts +7 -0
- package/lib/codec/LockIsLockedCodec.js +54 -0
- package/lib/codec/LockLockCodec.d.ts +5 -0
- package/lib/codec/LockLockCodec.js +51 -0
- package/lib/codec/LockMessageType.d.ts +10 -0
- package/lib/codec/LockMessageType.js +32 -0
- package/lib/codec/LockTryLockCodec.d.ts +7 -0
- package/lib/codec/LockTryLockCodec.js +62 -0
- package/lib/codec/LockUnlockCodec.d.ts +5 -0
- package/lib/codec/LockUnlockCodec.js +49 -0
- package/lib/codec/MapAddEntryListenerCodec.d.ts +8 -0
- package/lib/codec/MapAddEntryListenerCodec.js +104 -0
- package/lib/codec/MapAddEntryListenerToKeyCodec.d.ts +8 -0
- package/lib/codec/MapAddEntryListenerToKeyCodec.js +106 -0
- package/lib/codec/MapAddEntryListenerToKeyWithPredicateCodec.d.ts +8 -0
- package/lib/codec/MapAddEntryListenerToKeyWithPredicateCodec.js +108 -0
- package/lib/codec/MapAddEntryListenerWithPredicateCodec.d.ts +8 -0
- package/lib/codec/MapAddEntryListenerWithPredicateCodec.js +106 -0
- package/lib/codec/MapAddIndexCodec.d.ts +5 -0
- package/lib/codec/MapAddIndexCodec.js +49 -0
- package/lib/codec/MapAddNearCacheEntryListenerCodec.d.ts +8 -0
- package/lib/codec/MapAddNearCacheEntryListenerCodec.js +135 -0
- package/lib/codec/MapAddNearCacheInvalidationListenerCodec.d.ts +8 -0
- package/lib/codec/MapAddNearCacheInvalidationListenerCodec.js +138 -0
- package/lib/codec/MapAggregateCodec.d.ts +7 -0
- package/lib/codec/MapAggregateCodec.js +61 -0
- package/lib/codec/MapAggregateWithPredicateCodec.d.ts +7 -0
- package/lib/codec/MapAggregateWithPredicateCodec.js +63 -0
- package/lib/codec/MapClearCodec.d.ts +5 -0
- package/lib/codec/MapClearCodec.js +45 -0
- package/lib/codec/MapContainsKeyCodec.d.ts +7 -0
- package/lib/codec/MapContainsKeyCodec.js +58 -0
- package/lib/codec/MapContainsValueCodec.d.ts +7 -0
- package/lib/codec/MapContainsValueCodec.js +56 -0
- package/lib/codec/MapDeleteCodec.d.ts +6 -0
- package/lib/codec/MapDeleteCodec.js +49 -0
- package/lib/codec/MapEntriesWithPredicateCodec.d.ts +7 -0
- package/lib/codec/MapEntriesWithPredicateCodec.js +67 -0
- package/lib/codec/MapEntrySetCodec.d.ts +7 -0
- package/lib/codec/MapEntrySetCodec.js +65 -0
- package/lib/codec/MapEvictAllCodec.d.ts +5 -0
- package/lib/codec/MapEvictAllCodec.js +45 -0
- package/lib/codec/MapEvictCodec.d.ts +7 -0
- package/lib/codec/MapEvictCodec.js +58 -0
- package/lib/codec/MapExecuteOnAllKeysCodec.d.ts +7 -0
- package/lib/codec/MapExecuteOnAllKeysCodec.js +67 -0
- package/lib/codec/MapExecuteOnKeyCodec.d.ts +7 -0
- package/lib/codec/MapExecuteOnKeyCodec.js +62 -0
- package/lib/codec/MapExecuteOnKeysCodec.d.ts +7 -0
- package/lib/codec/MapExecuteOnKeysCodec.js +75 -0
- package/lib/codec/MapExecuteWithPredicateCodec.d.ts +7 -0
- package/lib/codec/MapExecuteWithPredicateCodec.js +69 -0
- package/lib/codec/MapFetchNearCacheInvalidationMetadataCodec.d.ts +8 -0
- package/lib/codec/MapFetchNearCacheInvalidationMetadataCodec.js +101 -0
- package/lib/codec/MapFlushCodec.d.ts +5 -0
- package/lib/codec/MapFlushCodec.js +45 -0
- package/lib/codec/MapForceUnlockCodec.d.ts +6 -0
- package/lib/codec/MapForceUnlockCodec.js +49 -0
- package/lib/codec/MapGetAllCodec.d.ts +7 -0
- package/lib/codec/MapGetAllCodec.js +73 -0
- package/lib/codec/MapGetCodec.d.ts +7 -0
- package/lib/codec/MapGetCodec.js +60 -0
- package/lib/codec/MapGetEntryViewCodec.d.ts +7 -0
- package/lib/codec/MapGetEntryViewCodec.js +61 -0
- package/lib/codec/MapIsEmptyCodec.d.ts +7 -0
- package/lib/codec/MapIsEmptyCodec.js +54 -0
- package/lib/codec/MapIsLockedCodec.d.ts +7 -0
- package/lib/codec/MapIsLockedCodec.js +56 -0
- package/lib/codec/MapKeySetCodec.d.ts +7 -0
- package/lib/codec/MapKeySetCodec.js +61 -0
- package/lib/codec/MapKeySetWithPagingPredicateCodec.d.ts +7 -0
- package/lib/codec/MapKeySetWithPagingPredicateCodec.js +63 -0
- package/lib/codec/MapKeySetWithPredicateCodec.d.ts +7 -0
- package/lib/codec/MapKeySetWithPredicateCodec.js +63 -0
- package/lib/codec/MapLoadAllCodec.d.ts +5 -0
- package/lib/codec/MapLoadAllCodec.js +47 -0
- package/lib/codec/MapLoadGivenKeysCodec.d.ts +5 -0
- package/lib/codec/MapLoadGivenKeysCodec.js +55 -0
- package/lib/codec/MapLockCodec.d.ts +6 -0
- package/lib/codec/MapLockCodec.js +53 -0
- package/lib/codec/MapMessageType.d.ts +71 -0
- package/lib/codec/MapMessageType.js +93 -0
- package/lib/codec/MapPutAllCodec.d.ts +5 -0
- package/lib/codec/MapPutAllCodec.js +59 -0
- package/lib/codec/MapPutCodec.d.ts +7 -0
- package/lib/codec/MapPutCodec.js +64 -0
- package/lib/codec/MapPutIfAbsentCodec.d.ts +7 -0
- package/lib/codec/MapPutIfAbsentCodec.js +64 -0
- package/lib/codec/MapPutTransientCodec.d.ts +6 -0
- package/lib/codec/MapPutTransientCodec.js +53 -0
- package/lib/codec/MapRemoveCodec.d.ts +7 -0
- package/lib/codec/MapRemoveCodec.js +60 -0
- package/lib/codec/MapRemoveEntryListenerCodec.d.ts +7 -0
- package/lib/codec/MapRemoveEntryListenerCodec.js +56 -0
- package/lib/codec/MapRemoveIfSameCodec.d.ts +7 -0
- package/lib/codec/MapRemoveIfSameCodec.js +60 -0
- package/lib/codec/MapReplaceCodec.d.ts +7 -0
- package/lib/codec/MapReplaceCodec.js +62 -0
- package/lib/codec/MapReplaceIfSameCodec.d.ts +7 -0
- package/lib/codec/MapReplaceIfSameCodec.js +62 -0
- package/lib/codec/MapSetCodec.d.ts +6 -0
- package/lib/codec/MapSetCodec.js +53 -0
- package/lib/codec/MapSizeCodec.d.ts +7 -0
- package/lib/codec/MapSizeCodec.js +54 -0
- package/lib/codec/MapTryLockCodec.d.ts +7 -0
- package/lib/codec/MapTryLockCodec.js +64 -0
- package/lib/codec/MapTryPutCodec.d.ts +7 -0
- package/lib/codec/MapTryPutCodec.js +62 -0
- package/lib/codec/MapTryRemoveCodec.d.ts +7 -0
- package/lib/codec/MapTryRemoveCodec.js +60 -0
- package/lib/codec/MapUnlockCodec.d.ts +6 -0
- package/lib/codec/MapUnlockCodec.js +51 -0
- package/lib/codec/MapValuesCodec.d.ts +7 -0
- package/lib/codec/MapValuesCodec.js +61 -0
- package/lib/codec/MapValuesWithPagingPredicateCodec.d.ts +7 -0
- package/lib/codec/MapValuesWithPagingPredicateCodec.js +67 -0
- package/lib/codec/MapValuesWithPredicateCodec.d.ts +7 -0
- package/lib/codec/MapValuesWithPredicateCodec.js +63 -0
- package/lib/codec/MemberCodec.d.ts +6 -0
- package/lib/codec/MemberCodec.js +49 -0
- package/lib/codec/MultiMapAddEntryListenerCodec.d.ts +8 -0
- package/lib/codec/MultiMapAddEntryListenerCodec.js +102 -0
- package/lib/codec/MultiMapAddEntryListenerToKeyCodec.d.ts +8 -0
- package/lib/codec/MultiMapAddEntryListenerToKeyCodec.js +104 -0
- package/lib/codec/MultiMapClearCodec.d.ts +5 -0
- package/lib/codec/MultiMapClearCodec.js +45 -0
- package/lib/codec/MultiMapContainsEntryCodec.d.ts +7 -0
- package/lib/codec/MultiMapContainsEntryCodec.js +60 -0
- package/lib/codec/MultiMapContainsKeyCodec.d.ts +7 -0
- package/lib/codec/MultiMapContainsKeyCodec.js +58 -0
- package/lib/codec/MultiMapContainsValueCodec.d.ts +7 -0
- package/lib/codec/MultiMapContainsValueCodec.js +56 -0
- package/lib/codec/MultiMapEntrySetCodec.d.ts +7 -0
- package/lib/codec/MultiMapEntrySetCodec.js +65 -0
- package/lib/codec/MultiMapForceUnlockCodec.d.ts +6 -0
- package/lib/codec/MultiMapForceUnlockCodec.js +49 -0
- package/lib/codec/MultiMapGetCodec.d.ts +7 -0
- package/lib/codec/MultiMapGetCodec.js +65 -0
- package/lib/codec/MultiMapIsLockedCodec.d.ts +7 -0
- package/lib/codec/MultiMapIsLockedCodec.js +56 -0
- package/lib/codec/MultiMapKeySetCodec.d.ts +7 -0
- package/lib/codec/MultiMapKeySetCodec.js +61 -0
- package/lib/codec/MultiMapLockCodec.d.ts +6 -0
- package/lib/codec/MultiMapLockCodec.js +53 -0
- package/lib/codec/MultiMapMessageType.d.ts +23 -0
- package/lib/codec/MultiMapMessageType.js +45 -0
- package/lib/codec/MultiMapPutCodec.d.ts +7 -0
- package/lib/codec/MultiMapPutCodec.js +60 -0
- package/lib/codec/MultiMapRemoveCodec.d.ts +7 -0
- package/lib/codec/MultiMapRemoveCodec.js +65 -0
- package/lib/codec/MultiMapRemoveEntryCodec.d.ts +7 -0
- package/lib/codec/MultiMapRemoveEntryCodec.js +60 -0
- package/lib/codec/MultiMapRemoveEntryListenerCodec.d.ts +7 -0
- package/lib/codec/MultiMapRemoveEntryListenerCodec.js +56 -0
- package/lib/codec/MultiMapSizeCodec.d.ts +7 -0
- package/lib/codec/MultiMapSizeCodec.js +54 -0
- package/lib/codec/MultiMapTryLockCodec.d.ts +7 -0
- package/lib/codec/MultiMapTryLockCodec.js +64 -0
- package/lib/codec/MultiMapUnlockCodec.d.ts +6 -0
- package/lib/codec/MultiMapUnlockCodec.js +51 -0
- package/lib/codec/MultiMapValueCountCodec.d.ts +7 -0
- package/lib/codec/MultiMapValueCountCodec.js +58 -0
- package/lib/codec/MultiMapValuesCodec.d.ts +7 -0
- package/lib/codec/MultiMapValuesCodec.js +61 -0
- package/lib/codec/PNCounterAddCodec.d.ts +8 -0
- package/lib/codec/PNCounterAddCodec.js +90 -0
- package/lib/codec/PNCounterGetCodec.d.ts +8 -0
- package/lib/codec/PNCounterGetCodec.js +86 -0
- package/lib/codec/PNCounterGetConfiguredReplicaCountCodec.d.ts +7 -0
- package/lib/codec/PNCounterGetConfiguredReplicaCountCodec.js +54 -0
- package/lib/codec/PNCounterMessageType.d.ts +5 -0
- package/lib/codec/PNCounterMessageType.js +27 -0
- package/lib/codec/QueueAddAllCodec.d.ts +7 -0
- package/lib/codec/QueueAddAllCodec.js +62 -0
- package/lib/codec/QueueAddListenerCodec.d.ts +8 -0
- package/lib/codec/QueueAddListenerCodec.js +80 -0
- package/lib/codec/QueueClearCodec.d.ts +5 -0
- package/lib/codec/QueueClearCodec.js +45 -0
- package/lib/codec/QueueCompareAndRemoveAllCodec.d.ts +7 -0
- package/lib/codec/QueueCompareAndRemoveAllCodec.js +62 -0
- package/lib/codec/QueueCompareAndRetainAllCodec.d.ts +7 -0
- package/lib/codec/QueueCompareAndRetainAllCodec.js +62 -0
- package/lib/codec/QueueContainsAllCodec.d.ts +7 -0
- package/lib/codec/QueueContainsAllCodec.js +62 -0
- package/lib/codec/QueueContainsCodec.d.ts +7 -0
- package/lib/codec/QueueContainsCodec.js +56 -0
- package/lib/codec/QueueDrainToCodec.d.ts +7 -0
- package/lib/codec/QueueDrainToCodec.js +61 -0
- package/lib/codec/QueueDrainToMaxSizeCodec.d.ts +7 -0
- package/lib/codec/QueueDrainToMaxSizeCodec.js +63 -0
- package/lib/codec/QueueIsEmptyCodec.d.ts +7 -0
- package/lib/codec/QueueIsEmptyCodec.js +54 -0
- package/lib/codec/QueueIteratorCodec.d.ts +7 -0
- package/lib/codec/QueueIteratorCodec.js +61 -0
- package/lib/codec/QueueMessageType.d.ts +22 -0
- package/lib/codec/QueueMessageType.js +44 -0
- package/lib/codec/QueueOfferCodec.d.ts +7 -0
- package/lib/codec/QueueOfferCodec.js +58 -0
- package/lib/codec/QueuePeekCodec.d.ts +7 -0
- package/lib/codec/QueuePeekCodec.js +56 -0
- package/lib/codec/QueuePollCodec.d.ts +7 -0
- package/lib/codec/QueuePollCodec.js +58 -0
- package/lib/codec/QueuePutCodec.d.ts +6 -0
- package/lib/codec/QueuePutCodec.js +47 -0
- package/lib/codec/QueueRemainingCapacityCodec.d.ts +7 -0
- package/lib/codec/QueueRemainingCapacityCodec.js +54 -0
- package/lib/codec/QueueRemoveCodec.d.ts +7 -0
- package/lib/codec/QueueRemoveCodec.js +56 -0
- package/lib/codec/QueueRemoveListenerCodec.d.ts +7 -0
- package/lib/codec/QueueRemoveListenerCodec.js +56 -0
- package/lib/codec/QueueSizeCodec.d.ts +7 -0
- package/lib/codec/QueueSizeCodec.js +54 -0
- package/lib/codec/QueueTakeCodec.d.ts +7 -0
- package/lib/codec/QueueTakeCodec.js +56 -0
- package/lib/codec/ReplicatedMapAddEntryListenerCodec.d.ts +8 -0
- package/lib/codec/ReplicatedMapAddEntryListenerCodec.js +100 -0
- package/lib/codec/ReplicatedMapAddEntryListenerToKeyCodec.d.ts +8 -0
- package/lib/codec/ReplicatedMapAddEntryListenerToKeyCodec.js +102 -0
- package/lib/codec/ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.d.ts +8 -0
- package/lib/codec/ReplicatedMapAddEntryListenerToKeyWithPredicateCodec.js +104 -0
- package/lib/codec/ReplicatedMapAddEntryListenerWithPredicateCodec.d.ts +8 -0
- package/lib/codec/ReplicatedMapAddEntryListenerWithPredicateCodec.js +102 -0
- package/lib/codec/ReplicatedMapClearCodec.d.ts +5 -0
- package/lib/codec/ReplicatedMapClearCodec.js +45 -0
- package/lib/codec/ReplicatedMapContainsKeyCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapContainsKeyCodec.js +56 -0
- package/lib/codec/ReplicatedMapContainsValueCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapContainsValueCodec.js +56 -0
- package/lib/codec/ReplicatedMapEntrySetCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapEntrySetCodec.js +65 -0
- package/lib/codec/ReplicatedMapGetCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapGetCodec.js +58 -0
- package/lib/codec/ReplicatedMapIsEmptyCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapIsEmptyCodec.js +54 -0
- package/lib/codec/ReplicatedMapKeySetCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapKeySetCodec.js +61 -0
- package/lib/codec/ReplicatedMapMessageType.d.ts +20 -0
- package/lib/codec/ReplicatedMapMessageType.js +42 -0
- package/lib/codec/ReplicatedMapPutAllCodec.d.ts +5 -0
- package/lib/codec/ReplicatedMapPutAllCodec.js +59 -0
- package/lib/codec/ReplicatedMapPutCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapPutCodec.js +62 -0
- package/lib/codec/ReplicatedMapRemoveCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapRemoveCodec.js +58 -0
- package/lib/codec/ReplicatedMapRemoveEntryListenerCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapRemoveEntryListenerCodec.js +56 -0
- package/lib/codec/ReplicatedMapSizeCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapSizeCodec.js +54 -0
- package/lib/codec/ReplicatedMapValuesCodec.d.ts +7 -0
- package/lib/codec/ReplicatedMapValuesCodec.js +61 -0
- package/lib/codec/RingbufferAddAllCodec.d.ts +7 -0
- package/lib/codec/RingbufferAddAllCodec.js +64 -0
- package/lib/codec/RingbufferAddCodec.d.ts +7 -0
- package/lib/codec/RingbufferAddCodec.js +58 -0
- package/lib/codec/RingbufferCapacityCodec.d.ts +7 -0
- package/lib/codec/RingbufferCapacityCodec.js +54 -0
- package/lib/codec/RingbufferHeadSequenceCodec.d.ts +7 -0
- package/lib/codec/RingbufferHeadSequenceCodec.js +54 -0
- package/lib/codec/RingbufferMessageType.d.ts +11 -0
- package/lib/codec/RingbufferMessageType.js +33 -0
- package/lib/codec/RingbufferReadManyCodec.d.ts +7 -0
- package/lib/codec/RingbufferReadManyCodec.js +92 -0
- package/lib/codec/RingbufferReadOneCodec.d.ts +7 -0
- package/lib/codec/RingbufferReadOneCodec.js +58 -0
- package/lib/codec/RingbufferRemainingCapacityCodec.d.ts +7 -0
- package/lib/codec/RingbufferRemainingCapacityCodec.js +54 -0
- package/lib/codec/RingbufferSizeCodec.d.ts +7 -0
- package/lib/codec/RingbufferSizeCodec.js +54 -0
- package/lib/codec/RingbufferTailSequenceCodec.d.ts +7 -0
- package/lib/codec/RingbufferTailSequenceCodec.js +54 -0
- package/lib/codec/SemaphoreAcquireCodec.d.ts +5 -0
- package/lib/codec/SemaphoreAcquireCodec.js +47 -0
- package/lib/codec/SemaphoreAvailablePermitsCodec.d.ts +7 -0
- package/lib/codec/SemaphoreAvailablePermitsCodec.js +54 -0
- package/lib/codec/SemaphoreDrainPermitsCodec.d.ts +7 -0
- package/lib/codec/SemaphoreDrainPermitsCodec.js +54 -0
- package/lib/codec/SemaphoreInitCodec.d.ts +7 -0
- package/lib/codec/SemaphoreInitCodec.js +56 -0
- package/lib/codec/SemaphoreMessageType.d.ts +9 -0
- package/lib/codec/SemaphoreMessageType.js +31 -0
- package/lib/codec/SemaphoreReducePermitsCodec.d.ts +5 -0
- package/lib/codec/SemaphoreReducePermitsCodec.js +47 -0
- package/lib/codec/SemaphoreReleaseCodec.d.ts +5 -0
- package/lib/codec/SemaphoreReleaseCodec.js +47 -0
- package/lib/codec/SemaphoreTryAcquireCodec.d.ts +7 -0
- package/lib/codec/SemaphoreTryAcquireCodec.js +58 -0
- package/lib/codec/SetAddAllCodec.d.ts +7 -0
- package/lib/codec/SetAddAllCodec.js +62 -0
- package/lib/codec/SetAddCodec.d.ts +7 -0
- package/lib/codec/SetAddCodec.js +56 -0
- package/lib/codec/SetAddListenerCodec.d.ts +8 -0
- package/lib/codec/SetAddListenerCodec.js +80 -0
- package/lib/codec/SetClearCodec.d.ts +5 -0
- package/lib/codec/SetClearCodec.js +45 -0
- package/lib/codec/SetCompareAndRemoveAllCodec.d.ts +7 -0
- package/lib/codec/SetCompareAndRemoveAllCodec.js +62 -0
- package/lib/codec/SetCompareAndRetainAllCodec.d.ts +7 -0
- package/lib/codec/SetCompareAndRetainAllCodec.js +62 -0
- package/lib/codec/SetContainsAllCodec.d.ts +7 -0
- package/lib/codec/SetContainsAllCodec.js +62 -0
- package/lib/codec/SetContainsCodec.d.ts +7 -0
- package/lib/codec/SetContainsCodec.js +56 -0
- package/lib/codec/SetGetAllCodec.d.ts +7 -0
- package/lib/codec/SetGetAllCodec.js +61 -0
- package/lib/codec/SetIsEmptyCodec.d.ts +7 -0
- package/lib/codec/SetIsEmptyCodec.js +54 -0
- package/lib/codec/SetMessageType.d.ts +15 -0
- package/lib/codec/SetMessageType.js +37 -0
- package/lib/codec/SetRemoveCodec.d.ts +7 -0
- package/lib/codec/SetRemoveCodec.js +56 -0
- package/lib/codec/SetRemoveListenerCodec.d.ts +7 -0
- package/lib/codec/SetRemoveListenerCodec.js +56 -0
- package/lib/codec/SetSizeCodec.d.ts +7 -0
- package/lib/codec/SetSizeCodec.js +54 -0
- package/lib/codec/UUIDCodec.d.ts +5 -0
- package/lib/codec/UUIDCodec.js +29 -0
- package/lib/config/ClientCloudConfig.d.ts +13 -0
- package/lib/config/ClientCloudConfig.js +34 -0
- package/lib/config/ClientNetworkConfig.d.ts +43 -0
- package/lib/config/ClientNetworkConfig.js +64 -0
- package/lib/config/Config.d.ts +61 -0
- package/lib/config/Config.js +138 -0
- package/lib/config/ConfigBuilder.d.ts +26 -0
- package/lib/config/ConfigBuilder.js +322 -0
- package/lib/config/ConfigPatternMatcher.d.ts +12 -0
- package/lib/config/ConfigPatternMatcher.js +70 -0
- package/lib/config/EvictionPolicy.d.ts +9 -0
- package/lib/config/EvictionPolicy.js +27 -0
- package/lib/config/FlakeIdGeneratorConfig.d.ts +26 -0
- package/lib/config/FlakeIdGeneratorConfig.js +56 -0
- package/lib/config/GroupConfig.d.ts +14 -0
- package/lib/config/GroupConfig.js +35 -0
- package/lib/config/ImportConfig.d.ts +4 -0
- package/lib/config/ImportConfig.js +17 -0
- package/lib/config/InMemoryFormat.d.ts +10 -0
- package/lib/config/InMemoryFormat.js +28 -0
- package/lib/config/JsonConfigLocator.d.ts +16 -0
- package/lib/config/JsonConfigLocator.js +103 -0
- package/lib/config/JsonStringDeserializationPolicy.d.ts +17 -0
- package/lib/config/JsonStringDeserializationPolicy.js +35 -0
- package/lib/config/ListenerConfig.d.ts +8 -0
- package/lib/config/ListenerConfig.js +33 -0
- package/lib/config/NearCacheConfig.d.ts +25 -0
- package/lib/config/NearCacheConfig.js +59 -0
- package/lib/config/Properties.d.ts +5 -0
- package/lib/config/Properties.js +17 -0
- package/lib/config/ReliableTopicConfig.d.ts +8 -0
- package/lib/config/ReliableTopicConfig.js +38 -0
- package/lib/config/SSLConfig.d.ts +34 -0
- package/lib/config/SSLConfig.js +51 -0
- package/lib/config/SerializationConfig.d.ts +29 -0
- package/lib/config/SerializationConfig.js +38 -0
- package/lib/config/StringSerializationPolicy.d.ts +22 -0
- package/lib/config/StringSerializationPolicy.js +40 -0
- package/lib/connection/AddressProvider.d.ts +11 -0
- package/lib/connection/AddressProvider.js +17 -0
- package/lib/connection/AddressTranslator.d.ts +21 -0
- package/lib/connection/AddressTranslator.js +17 -0
- package/lib/connection/BasicSSLOptionsFactory.d.ts +14 -0
- package/lib/connection/BasicSSLOptionsFactory.js +67 -0
- package/lib/connection/DefaultAddressProvider.d.ts +15 -0
- package/lib/connection/DefaultAddressProvider.js +38 -0
- package/lib/connection/DefaultAddressTranslator.d.ts +11 -0
- package/lib/connection/DefaultAddressTranslator.js +33 -0
- package/lib/connection/SSLOptionsFactory.d.ts +7 -0
- package/lib/connection/SSLOptionsFactory.js +17 -0
- package/lib/core/Comparator.d.ts +21 -0
- package/lib/core/Comparator.js +17 -0
- package/lib/core/ConnectionHeartbeatListener.d.ts +16 -0
- package/lib/core/ConnectionHeartbeatListener.js +17 -0
- package/lib/core/DistributedObjectListener.d.ts +24 -0
- package/lib/core/DistributedObjectListener.js +30 -0
- package/lib/core/EntryListener.d.ts +51 -0
- package/lib/core/EntryListener.js +32 -0
- package/lib/core/EntryView.d.ts +16 -0
- package/lib/core/EntryView.js +23 -0
- package/lib/core/EventType.d.ts +12 -0
- package/lib/core/EventType.js +31 -0
- package/lib/core/HazelcastJsonValue.d.ts +32 -0
- package/lib/core/HazelcastJsonValue.js +56 -0
- package/lib/core/ItemListener.d.ts +38 -0
- package/lib/core/ItemListener.js +35 -0
- package/lib/core/MapListener.d.ts +29 -0
- package/lib/core/MapListener.js +29 -0
- package/lib/core/Member.d.ts +23 -0
- package/lib/core/Member.js +44 -0
- package/lib/core/MemberAttributeEvent.d.ts +37 -0
- package/lib/core/MemberAttributeEvent.js +45 -0
- package/lib/core/MemberSelector.d.ts +4 -0
- package/lib/core/MemberSelector.js +17 -0
- package/lib/core/MemberSelectors.d.ts +8 -0
- package/lib/core/MemberSelectors.js +33 -0
- package/lib/core/MembershipEvent.d.ts +20 -0
- package/lib/core/MembershipEvent.js +30 -0
- package/lib/core/MembershipListener.d.ts +22 -0
- package/lib/core/MembershipListener.js +17 -0
- package/lib/core/OverflowPolicy.d.ts +4 -0
- package/lib/core/OverflowPolicy.js +22 -0
- package/lib/core/Predicate.d.ts +28 -0
- package/lib/core/Predicate.js +113 -0
- package/lib/core/ReadOnlyLazyList.d.ts +12 -0
- package/lib/core/ReadOnlyLazyList.js +74 -0
- package/lib/core/RestValue.d.ts +15 -0
- package/lib/core/RestValue.js +51 -0
- package/lib/core/UUID.d.ts +9 -0
- package/lib/core/UUID.js +44 -0
- package/lib/core/VectorClock.d.ts +7 -0
- package/lib/core/VectorClock.js +48 -0
- package/lib/discovery/HazelcastCloudAddressProvider.d.ts +10 -0
- package/lib/discovery/HazelcastCloudAddressProvider.js +35 -0
- package/lib/discovery/HazelcastCloudAddressTranslator.d.ts +13 -0
- package/lib/discovery/HazelcastCloudAddressTranslator.js +54 -0
- package/lib/discovery/HazelcastCloudDiscovery.d.ts +25 -0
- package/lib/discovery/HazelcastCloudDiscovery.js +85 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.js +64 -0
- package/lib/invocation/ClientConnection.d.ts +82 -0
- package/lib/invocation/ClientConnection.js +307 -0
- package/lib/invocation/ClientConnectionManager.d.ts +65 -0
- package/lib/invocation/ClientConnectionManager.js +360 -0
- package/lib/invocation/ClientEventRegistration.d.ts +10 -0
- package/lib/invocation/ClientEventRegistration.js +30 -0
- package/lib/invocation/ClusterService.d.ts +127 -0
- package/lib/invocation/ClusterService.js +581 -0
- package/lib/invocation/ConnectionAuthenticator.d.ts +14 -0
- package/lib/invocation/ConnectionAuthenticator.js +88 -0
- package/lib/invocation/InvocationService.d.ts +138 -0
- package/lib/invocation/InvocationService.js +387 -0
- package/lib/invocation/Murmur.d.ts +2 -0
- package/lib/invocation/Murmur.js +65 -0
- package/lib/invocation/RegistrationKey.d.ts +16 -0
- package/lib/invocation/RegistrationKey.js +48 -0
- package/lib/logging/DefaultLogger.d.ts +12 -0
- package/lib/logging/DefaultLogger.js +48 -0
- package/lib/logging/ILogger.d.ts +49 -0
- package/lib/logging/ILogger.js +17 -0
- package/lib/logging/LoggingService.d.ts +16 -0
- package/lib/logging/LoggingService.js +50 -0
- package/lib/nearcache/AlwaysFreshStaleReadDetectorImpl.d.ts +10 -0
- package/lib/nearcache/AlwaysFreshStaleReadDetectorImpl.js +34 -0
- package/lib/nearcache/DataRecord.d.ts +33 -0
- package/lib/nearcache/DataRecord.js +109 -0
- package/lib/nearcache/MetadataContainer.d.ts +18 -0
- package/lib/nearcache/MetadataContainer.js +56 -0
- package/lib/nearcache/MetadataFetcher.d.ts +20 -0
- package/lib/nearcache/MetadataFetcher.js +92 -0
- package/lib/nearcache/NearCache.d.ts +89 -0
- package/lib/nearcache/NearCache.js +250 -0
- package/lib/nearcache/NearCacheManager.d.ts +13 -0
- package/lib/nearcache/NearCacheManager.js +50 -0
- package/lib/nearcache/RepairingHandler.d.ts +26 -0
- package/lib/nearcache/RepairingHandler.js +114 -0
- package/lib/nearcache/RepairingTask.d.ts +26 -0
- package/lib/nearcache/RepairingTask.js +117 -0
- package/lib/nearcache/StaleReadDetector.d.ts +7 -0
- package/lib/nearcache/StaleReadDetector.js +2 -0
- package/lib/nearcache/StaleReadDetectorImpl.d.ts +13 -0
- package/lib/nearcache/StaleReadDetectorImpl.js +62 -0
- package/lib/protocol/ClientProtocolErrorCodes.d.ts +91 -0
- package/lib/protocol/ClientProtocolErrorCodes.js +112 -0
- package/lib/protocol/ErrorCodec.d.ts +11 -0
- package/lib/protocol/ErrorCodec.js +50 -0
- package/lib/protocol/ErrorFactory.d.ts +8 -0
- package/lib/protocol/ErrorFactory.js +92 -0
- package/lib/protocol/StackTraceElementCodec.d.ts +8 -0
- package/lib/protocol/StackTraceElementCodec.js +38 -0
- package/lib/proxy/AtomicLongProxy.d.ts +17 -0
- package/lib/proxy/AtomicLongProxy.js +72 -0
- package/lib/proxy/BaseProxy.d.ts +89 -0
- package/lib/proxy/BaseProxy.js +191 -0
- package/lib/proxy/FlakeIdGenerator.d.ts +47 -0
- package/lib/proxy/FlakeIdGenerator.js +17 -0
- package/lib/proxy/FlakeIdGeneratorProxy.d.ts +13 -0
- package/lib/proxy/FlakeIdGeneratorProxy.js +48 -0
- package/lib/proxy/IAtomicLong.d.ts +16 -0
- package/lib/proxy/IAtomicLong.js +17 -0
- package/lib/proxy/IList.d.ts +132 -0
- package/lib/proxy/IList.js +17 -0
- package/lib/proxy/ILock.d.ts +54 -0
- package/lib/proxy/ILock.js +17 -0
- package/lib/proxy/IMap.d.ts +328 -0
- package/lib/proxy/IMap.js +17 -0
- package/lib/proxy/IQueue.d.ts +128 -0
- package/lib/proxy/IQueue.js +17 -0
- package/lib/proxy/ISemaphore.d.ts +53 -0
- package/lib/proxy/ISemaphore.js +17 -0
- package/lib/proxy/ISet.d.ts +89 -0
- package/lib/proxy/ISet.js +17 -0
- package/lib/proxy/ListProxy.d.ts +31 -0
- package/lib/proxy/ListProxy.js +165 -0
- package/lib/proxy/LockProxy.d.ts +16 -0
- package/lib/proxy/LockProxy.js +78 -0
- package/lib/proxy/MapProxy.d.ts +82 -0
- package/lib/proxy/MapProxy.js +651 -0
- package/lib/proxy/MultiMap.d.ts +153 -0
- package/lib/proxy/MultiMap.js +17 -0
- package/lib/proxy/MultiMapProxy.d.ts +33 -0
- package/lib/proxy/MultiMapProxy.js +238 -0
- package/lib/proxy/NearCachedMapProxy.d.ts +41 -0
- package/lib/proxy/NearCachedMapProxy.js +284 -0
- package/lib/proxy/PNCounter.d.ts +162 -0
- package/lib/proxy/PNCounter.js +17 -0
- package/lib/proxy/PNCounterProxy.d.ts +30 -0
- package/lib/proxy/PNCounterProxy.js +181 -0
- package/lib/proxy/PartitionSpecificProxy.d.ts +10 -0
- package/lib/proxy/PartitionSpecificProxy.js +52 -0
- package/lib/proxy/ProxyManager.d.ts +40 -0
- package/lib/proxy/ProxyManager.js +202 -0
- package/lib/proxy/QueueProxy.d.ts +28 -0
- package/lib/proxy/QueueProxy.js +198 -0
- package/lib/proxy/ReplicatedMap.d.ts +149 -0
- package/lib/proxy/ReplicatedMap.js +17 -0
- package/lib/proxy/ReplicatedMapProxy.d.ts +34 -0
- package/lib/proxy/ReplicatedMapProxy.js +256 -0
- package/lib/proxy/Ringbuffer.d.ts +115 -0
- package/lib/proxy/Ringbuffer.js +17 -0
- package/lib/proxy/SemaphoreProxy.d.ts +15 -0
- package/lib/proxy/SemaphoreProxy.js +73 -0
- package/lib/proxy/SetProxy.d.ts +22 -0
- package/lib/proxy/SetProxy.js +130 -0
- package/lib/proxy/flakeid/AutoBatcher.d.ts +30 -0
- package/lib/proxy/flakeid/AutoBatcher.js +104 -0
- package/lib/proxy/ringbuffer/LazyReadResultSet.d.ts +16 -0
- package/lib/proxy/ringbuffer/LazyReadResultSet.js +54 -0
- package/lib/proxy/ringbuffer/ReadResultSet.d.ts +41 -0
- package/lib/proxy/ringbuffer/ReadResultSet.js +17 -0
- package/lib/proxy/ringbuffer/RingbufferProxy.d.ts +19 -0
- package/lib/proxy/ringbuffer/RingbufferProxy.js +98 -0
- package/lib/proxy/topic/ITopic.d.ts +9 -0
- package/lib/proxy/topic/ITopic.js +17 -0
- package/lib/proxy/topic/Message.d.ts +8 -0
- package/lib/proxy/topic/Message.js +23 -0
- package/lib/proxy/topic/MessageListener.d.ts +2 -0
- package/lib/proxy/topic/MessageListener.js +2 -0
- package/lib/proxy/topic/ReliableTopicListenerRunner.d.ts +20 -0
- package/lib/proxy/topic/ReliableTopicListenerRunner.js +73 -0
- package/lib/proxy/topic/ReliableTopicMessage.d.ts +19 -0
- package/lib/proxy/topic/ReliableTopicMessage.js +53 -0
- package/lib/proxy/topic/ReliableTopicProxy.d.ts +31 -0
- package/lib/proxy/topic/ReliableTopicProxy.js +151 -0
- package/lib/proxy/topic/TopicOverloadPolicy.d.ts +23 -0
- package/lib/proxy/topic/TopicOverloadPolicy.js +41 -0
- package/lib/serialization/Data.d.ts +114 -0
- package/lib/serialization/Data.js +17 -0
- package/lib/serialization/DefaultPredicates.d.ts +131 -0
- package/lib/serialization/DefaultPredicates.js +465 -0
- package/lib/serialization/DefaultSerializer.d.ts +134 -0
- package/lib/serialization/DefaultSerializer.js +442 -0
- package/lib/serialization/HeapData.d.ts +44 -0
- package/lib/serialization/HeapData.js +104 -0
- package/lib/serialization/ObjectData.d.ts +102 -0
- package/lib/serialization/ObjectData.js +566 -0
- package/lib/serialization/PredicateFactory.d.ts +15 -0
- package/lib/serialization/PredicateFactory.js +46 -0
- package/lib/serialization/Serializable.d.ts +23 -0
- package/lib/serialization/Serializable.js +17 -0
- package/lib/serialization/SerializationService.d.ts +60 -0
- package/lib/serialization/SerializationService.js +312 -0
- package/lib/serialization/SerializationUtil.d.ts +3 -0
- package/lib/serialization/SerializationUtil.js +31 -0
- package/lib/serialization/portable/ClassDefinition.d.ts +54 -0
- package/lib/serialization/portable/ClassDefinition.js +140 -0
- package/lib/serialization/portable/ClassDefinitionBuilder.d.ts +35 -0
- package/lib/serialization/portable/ClassDefinitionBuilder.js +126 -0
- package/lib/serialization/portable/ClassDefinitionContext.d.ts +9 -0
- package/lib/serialization/portable/ClassDefinitionContext.js +51 -0
- package/lib/serialization/portable/ClassDefinitionWriter.d.ts +35 -0
- package/lib/serialization/portable/ClassDefinitionWriter.js +123 -0
- package/lib/serialization/portable/DefaultPortableReader.d.ts +43 -0
- package/lib/serialization/portable/DefaultPortableReader.js +188 -0
- package/lib/serialization/portable/DefaultPortableWriter.d.ts +37 -0
- package/lib/serialization/portable/DefaultPortableWriter.js +156 -0
- package/lib/serialization/portable/MorphingPortableReader.d.ts +31 -0
- package/lib/serialization/portable/MorphingPortableReader.js +189 -0
- package/lib/serialization/portable/PortableContext.d.ts +16 -0
- package/lib/serialization/portable/PortableContext.js +126 -0
- package/lib/serialization/portable/PortableSerializer.d.ts +68 -0
- package/lib/serialization/portable/PortableSerializer.js +94 -0
- package/lib/statistics/Statistics.d.ts +50 -0
- package/lib/statistics/Statistics.js +232 -0
- package/lib/util/ArrayComparator.d.ts +1 -0
- package/lib/util/ArrayComparator.js +17 -0
- package/lib/util/UuidUtil.d.ts +4 -0
- package/lib/util/UuidUtil.js +35 -0
- package/lib.es6.d.ts +18650 -0
- package/package.json +55 -0
- package/tsconfig.json +20 -0
|
@@ -0,0 +1,581 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright (c) 2008-2021, Hazelcast, Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
var Promise = require("bluebird");
|
|
19
|
+
var ClientAddMembershipListenerCodec_1 = require("../codec/ClientAddMembershipListenerCodec");
|
|
20
|
+
var ClientInfo_1 = require("../ClientInfo");
|
|
21
|
+
var HazelcastError_1 = require("../HazelcastError");
|
|
22
|
+
var assert = require("assert");
|
|
23
|
+
var Util_1 = require("../Util");
|
|
24
|
+
var MemberAttributeEvent_1 = require("../core/MemberAttributeEvent");
|
|
25
|
+
var MembershipEvent_1 = require("../core/MembershipEvent");
|
|
26
|
+
var UuidUtil_1 = require("../util/UuidUtil");
|
|
27
|
+
var Address = require("../Address");
|
|
28
|
+
var MemberEvent;
|
|
29
|
+
(function (MemberEvent) {
|
|
30
|
+
MemberEvent[MemberEvent["ADDED"] = 1] = "ADDED";
|
|
31
|
+
MemberEvent[MemberEvent["REMOVED"] = 2] = "REMOVED";
|
|
32
|
+
})(MemberEvent = exports.MemberEvent || (exports.MemberEvent = {}));
|
|
33
|
+
/**
|
|
34
|
+
* Manages the relationship of this client with the cluster.
|
|
35
|
+
*/
|
|
36
|
+
var ClusterService = /** @class */ (function () {
|
|
37
|
+
function ClusterService(client) {
|
|
38
|
+
/**
|
|
39
|
+
* The unique identifier of the owner server node. This node is responsible for resource cleanup
|
|
40
|
+
*/
|
|
41
|
+
this.ownerUuid = null;
|
|
42
|
+
/**
|
|
43
|
+
* The unique identifier of this client instance. Assigned by owner node on authentication
|
|
44
|
+
*/
|
|
45
|
+
this.uuid = null;
|
|
46
|
+
this.knownAddresses = [];
|
|
47
|
+
this.members = [];
|
|
48
|
+
this.membershipListeners = new Map();
|
|
49
|
+
this.failoverInProgress = false;
|
|
50
|
+
this.lastFailoverAttempt = 0;
|
|
51
|
+
this.failoverCooldown = 5000; // 5 seconds cooldown between failover attempts
|
|
52
|
+
this.downAddresses = new Map(); // address -> timestamp when marked down
|
|
53
|
+
this.addressBlockDuration = 30000; // 30 seconds block duration for down addresses
|
|
54
|
+
this.reconnectionTask = null;
|
|
55
|
+
this.reconnectionInterval = 10000; // 10 seconds between reconnection attempts
|
|
56
|
+
this.client = client;
|
|
57
|
+
this.logger = this.client.getLoggingService().getLogger();
|
|
58
|
+
this.members = [];
|
|
59
|
+
this.startReconnectionTask();
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Starts cluster service.
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
ClusterService.prototype.start = function () {
|
|
66
|
+
this.initHeartbeatListener();
|
|
67
|
+
this.initConnectionListener();
|
|
68
|
+
return this.connectToCluster();
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Connects to cluster. It uses the addresses provided in the configuration.
|
|
72
|
+
* @returns
|
|
73
|
+
*/
|
|
74
|
+
ClusterService.prototype.connectToCluster = function () {
|
|
75
|
+
var _this = this;
|
|
76
|
+
return this.getPossibleMemberAddresses().then(function (res) {
|
|
77
|
+
_this.knownAddresses = [];
|
|
78
|
+
res.forEach(function (value) {
|
|
79
|
+
_this.knownAddresses = _this.knownAddresses.concat(Util_1.AddressHelper.getSocketAddresses(value));
|
|
80
|
+
});
|
|
81
|
+
var attemptLimit = _this.client.getConfig().networkConfig.connectionAttemptLimit;
|
|
82
|
+
var attemptPeriod = _this.client.getConfig().networkConfig.connectionAttemptPeriod;
|
|
83
|
+
return _this.tryConnectingToAddresses(0, attemptLimit, attemptPeriod);
|
|
84
|
+
});
|
|
85
|
+
};
|
|
86
|
+
ClusterService.prototype.getPossibleMemberAddresses = function () {
|
|
87
|
+
var _this = this;
|
|
88
|
+
var addresses = new Set();
|
|
89
|
+
this.getMembers().forEach(function (member) {
|
|
90
|
+
addresses.add(member.address.toString());
|
|
91
|
+
});
|
|
92
|
+
var providerAddresses = new Set();
|
|
93
|
+
var promises = [];
|
|
94
|
+
this.client.getConnectionManager().addressProviders.forEach(function (addressProvider) {
|
|
95
|
+
promises.push(addressProvider.loadAddresses().then(function (res) {
|
|
96
|
+
providerAddresses = new Set(Array.from(providerAddresses).concat(res));
|
|
97
|
+
}).catch(function (err) {
|
|
98
|
+
_this.logger.warn('Error from AddressProvider: ' + addressProvider, err);
|
|
99
|
+
}));
|
|
100
|
+
});
|
|
101
|
+
return Promise.all(promises).then(function () {
|
|
102
|
+
return Array.from(new Set(Array.from(addresses).concat(Array.from(providerAddresses))));
|
|
103
|
+
});
|
|
104
|
+
};
|
|
105
|
+
/**
|
|
106
|
+
* Returns the list of members in the cluster.
|
|
107
|
+
* @returns
|
|
108
|
+
*/
|
|
109
|
+
ClusterService.prototype.getMembers = function (selector) {
|
|
110
|
+
if (selector === undefined) {
|
|
111
|
+
return this.members;
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
var members_1 = [];
|
|
115
|
+
this.members.forEach(function (member) {
|
|
116
|
+
if (selector.select(member)) {
|
|
117
|
+
members_1.push(member);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
return members_1;
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
ClusterService.prototype.getMember = function (uuid) {
|
|
124
|
+
for (var _i = 0, _a = this.members; _i < _a.length; _i++) {
|
|
125
|
+
var member = _a[_i];
|
|
126
|
+
if (member.uuid === uuid) {
|
|
127
|
+
return member;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
return null;
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Returns the number of nodes in cluster.
|
|
134
|
+
* @returns {number}
|
|
135
|
+
*/
|
|
136
|
+
ClusterService.prototype.getSize = function () {
|
|
137
|
+
return this.members.length;
|
|
138
|
+
};
|
|
139
|
+
/**
|
|
140
|
+
* Returns information about this client.
|
|
141
|
+
* @returns {ClientInfo}
|
|
142
|
+
*/
|
|
143
|
+
ClusterService.prototype.getClientInfo = function () {
|
|
144
|
+
var info = new ClientInfo_1.ClientInfo();
|
|
145
|
+
info.uuid = this.uuid;
|
|
146
|
+
info.localAddress = this.getOwnerConnection().getLocalAddress();
|
|
147
|
+
return info;
|
|
148
|
+
};
|
|
149
|
+
/**
|
|
150
|
+
* Returns the connection associated with owner node of this client.
|
|
151
|
+
* @returns {ClientConnection}
|
|
152
|
+
*/
|
|
153
|
+
ClusterService.prototype.getOwnerConnection = function () {
|
|
154
|
+
return this.ownerConnection;
|
|
155
|
+
};
|
|
156
|
+
/**
|
|
157
|
+
* Adds MembershipListener to listen for membership updates. There is no check for duplicate registrations,
|
|
158
|
+
* so if you register the listener twice, it will get events twice.
|
|
159
|
+
* @param {MembershipListener} The listener to be registered
|
|
160
|
+
* @return The registration ID
|
|
161
|
+
*/
|
|
162
|
+
ClusterService.prototype.addMembershipListener = function (membershipListener) {
|
|
163
|
+
var registrationId = UuidUtil_1.UuidUtil.generate().toString();
|
|
164
|
+
this.membershipListeners.set(registrationId, membershipListener);
|
|
165
|
+
return registrationId;
|
|
166
|
+
};
|
|
167
|
+
/**
|
|
168
|
+
* Removes registered MembershipListener.
|
|
169
|
+
* @param {string} The registration ID
|
|
170
|
+
* @return {boolean} true if successfully removed, false otherwise
|
|
171
|
+
*/
|
|
172
|
+
ClusterService.prototype.removeMembershipListener = function (registrationId) {
|
|
173
|
+
if (registrationId === null) {
|
|
174
|
+
throw new RangeError('registrationId cannot be null');
|
|
175
|
+
}
|
|
176
|
+
return this.membershipListeners.delete(registrationId);
|
|
177
|
+
};
|
|
178
|
+
ClusterService.prototype.initMembershipListener = function () {
|
|
179
|
+
var _this = this;
|
|
180
|
+
var request = ClientAddMembershipListenerCodec_1.ClientAddMembershipListenerCodec.encodeRequest(false);
|
|
181
|
+
var handler = function (m) {
|
|
182
|
+
var handleMember = _this.handleMember.bind(_this);
|
|
183
|
+
var handleMemberList = _this.handleMemberList.bind(_this);
|
|
184
|
+
var handleAttributeChange = _this.handleMemberAttributeChange.bind(_this);
|
|
185
|
+
ClientAddMembershipListenerCodec_1.ClientAddMembershipListenerCodec.handle(m, handleMember, handleMemberList, handleAttributeChange, null);
|
|
186
|
+
};
|
|
187
|
+
return this.client.getInvocationService().invokeOnConnection(this.getOwnerConnection(), request, handler)
|
|
188
|
+
.then(function (resp) {
|
|
189
|
+
_this.logger.trace('ClusterService', 'Registered listener with id '
|
|
190
|
+
+ ClientAddMembershipListenerCodec_1.ClientAddMembershipListenerCodec.decodeResponse(resp).response);
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
ClusterService.prototype.initHeartbeatListener = function () {
|
|
194
|
+
this.client.getHeartbeat().addListener({
|
|
195
|
+
onHeartbeatStopped: this.onHeartbeatStopped.bind(this),
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
ClusterService.prototype.initConnectionListener = function () {
|
|
199
|
+
this.client.getConnectionManager().on('connectionClosed', this.onConnectionClosed.bind(this));
|
|
200
|
+
};
|
|
201
|
+
ClusterService.prototype.onConnectionClosed = function (connection) {
|
|
202
|
+
this.logger.warn('ClusterService', 'Connection closed to ' + connection.toString());
|
|
203
|
+
// Mark the address as down when connection is closed
|
|
204
|
+
this.markAddressAsDown(connection.getAddress());
|
|
205
|
+
if (connection.isAuthenticatedAsOwner()) {
|
|
206
|
+
this.ownerConnection = null;
|
|
207
|
+
this.triggerFailover();
|
|
208
|
+
}
|
|
209
|
+
};
|
|
210
|
+
ClusterService.prototype.onHeartbeatStopped = function (connection) {
|
|
211
|
+
this.logger.warn('ClusterService', connection.toString() + ' stopped heartbeating.');
|
|
212
|
+
// Mark the address as down when heartbeat stops
|
|
213
|
+
this.markAddressAsDown(connection.getAddress());
|
|
214
|
+
if (connection.isAuthenticatedAsOwner()) {
|
|
215
|
+
this.client.getConnectionManager().destroyConnection(connection.getAddress());
|
|
216
|
+
this.ownerConnection = null;
|
|
217
|
+
this.triggerFailover();
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
ClusterService.prototype.triggerFailover = function () {
|
|
221
|
+
var _this = this;
|
|
222
|
+
var now = Date.now();
|
|
223
|
+
if (this.failoverInProgress || (now - this.lastFailoverAttempt) < this.failoverCooldown) {
|
|
224
|
+
this.logger.debug('ClusterService', 'Failover already in progress or too soon since last attempt');
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
this.failoverInProgress = true;
|
|
228
|
+
this.lastFailoverAttempt = now;
|
|
229
|
+
this.logger.info('ClusterService', 'Starting failover process...');
|
|
230
|
+
// Clear any stale partition information
|
|
231
|
+
this.client.getPartitionService().clearPartitionTable();
|
|
232
|
+
// Attempt to reconnect to cluster
|
|
233
|
+
this.connectToCluster()
|
|
234
|
+
.then(function () {
|
|
235
|
+
_this.logger.info('ClusterService', 'Failover completed successfully');
|
|
236
|
+
})
|
|
237
|
+
.catch(function (error) {
|
|
238
|
+
_this.logger.error('ClusterService', 'Failover failed', error);
|
|
239
|
+
// If failover fails, shutdown the client to prevent further issues
|
|
240
|
+
_this.client.shutdown();
|
|
241
|
+
})
|
|
242
|
+
.finally(function () {
|
|
243
|
+
_this.failoverInProgress = false;
|
|
244
|
+
});
|
|
245
|
+
};
|
|
246
|
+
ClusterService.prototype.isAddressKnownDown = function (address) {
|
|
247
|
+
var addressStr = address.toString();
|
|
248
|
+
var downTime = this.downAddresses.get(addressStr);
|
|
249
|
+
if (!downTime) {
|
|
250
|
+
return false;
|
|
251
|
+
}
|
|
252
|
+
var now = Date.now();
|
|
253
|
+
var timeSinceDown = now - downTime;
|
|
254
|
+
// If address has been down for longer than block duration, unblock it
|
|
255
|
+
if (timeSinceDown > this.addressBlockDuration) {
|
|
256
|
+
this.logger.debug('ClusterService', "Unblocking address " + addressStr + " after " + this.addressBlockDuration + "ms");
|
|
257
|
+
this.downAddresses.delete(addressStr);
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
// Address is still blocked
|
|
261
|
+
var remainingBlockTime = this.addressBlockDuration - timeSinceDown;
|
|
262
|
+
this.logger.debug('ClusterService', "Address " + addressStr + " is blocked for " + remainingBlockTime + "ms more");
|
|
263
|
+
return true;
|
|
264
|
+
};
|
|
265
|
+
ClusterService.prototype.markAddressAsDown = function (address) {
|
|
266
|
+
var _this = this;
|
|
267
|
+
var addressStr = address.toString();
|
|
268
|
+
var now = Date.now();
|
|
269
|
+
this.downAddresses.set(addressStr, now);
|
|
270
|
+
this.logger.warn('ClusterService', "Marked address " + addressStr + " as down, will be blocked for " + this.addressBlockDuration + "ms");
|
|
271
|
+
// Schedule cleanup of this address after block duration
|
|
272
|
+
setTimeout(function () {
|
|
273
|
+
if (_this.downAddresses.has(addressStr)) {
|
|
274
|
+
_this.logger.info('ClusterService', "Unblocking address " + addressStr + " after block duration");
|
|
275
|
+
_this.downAddresses.delete(addressStr);
|
|
276
|
+
}
|
|
277
|
+
}, this.addressBlockDuration);
|
|
278
|
+
};
|
|
279
|
+
ClusterService.prototype.getDownAddressesInfo = function () {
|
|
280
|
+
var _this = this;
|
|
281
|
+
var now = Date.now();
|
|
282
|
+
var downInfo = [];
|
|
283
|
+
this.downAddresses.forEach(function (downTime, address) {
|
|
284
|
+
var timeSinceDown = now - downTime;
|
|
285
|
+
var remainingTime = Math.max(0, _this.addressBlockDuration - timeSinceDown);
|
|
286
|
+
downInfo.push(address + " (" + Math.ceil(remainingTime / 1000) + "s remaining)");
|
|
287
|
+
});
|
|
288
|
+
return downInfo.length > 0 ? downInfo.join(', ') : 'none';
|
|
289
|
+
};
|
|
290
|
+
ClusterService.prototype.tryConnectingToAddresses = function (index, remainingAttemptLimit, attemptPeriod, cause) {
|
|
291
|
+
var _this = this;
|
|
292
|
+
this.logger.debug('ClusterService', 'Trying to connect to addresses, remaining attempt limit: ' + remainingAttemptLimit
|
|
293
|
+
+ ', attempt period: ' + attemptPeriod + ', down addresses: ' + this.getDownAddressesInfo());
|
|
294
|
+
if (this.knownAddresses.length <= index) {
|
|
295
|
+
remainingAttemptLimit = remainingAttemptLimit - 1;
|
|
296
|
+
if (remainingAttemptLimit === 0) {
|
|
297
|
+
var errorMessage = 'Unable to connect to any of the following addresses: ' +
|
|
298
|
+
this.knownAddresses.map(function (element) {
|
|
299
|
+
return element.toString();
|
|
300
|
+
}).join(', ');
|
|
301
|
+
this.logger.debug('ClusterService', errorMessage);
|
|
302
|
+
var error = new HazelcastError_1.IllegalStateError(errorMessage, cause);
|
|
303
|
+
return Promise.reject(error);
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
var deferred_1 = Util_1.DeferredPromise();
|
|
307
|
+
setTimeout(function () {
|
|
308
|
+
_this.tryConnectingToAddresses(0, remainingAttemptLimit, attemptPeriod).then(function () {
|
|
309
|
+
deferred_1.resolve();
|
|
310
|
+
}).catch(function (e) {
|
|
311
|
+
deferred_1.reject(e);
|
|
312
|
+
});
|
|
313
|
+
}, attemptPeriod);
|
|
314
|
+
return deferred_1.promise;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
var currentAddress_1 = this.knownAddresses[index];
|
|
319
|
+
// Skip addresses that are known to be down
|
|
320
|
+
if (this.isAddressKnownDown(currentAddress_1)) {
|
|
321
|
+
this.logger.debug('ClusterService', "Skipping known down address: " + currentAddress_1.toString());
|
|
322
|
+
return this.tryConnectingToAddresses(index + 1, remainingAttemptLimit, attemptPeriod, cause);
|
|
323
|
+
}
|
|
324
|
+
return this.client.getConnectionManager().getOrConnect(currentAddress_1, true).then(function (connection) {
|
|
325
|
+
connection.setAuthenticatedAsOwner(true);
|
|
326
|
+
_this.ownerConnection = connection;
|
|
327
|
+
_this.logger.info('ClusterService', "Successfully connected to owner node: " + currentAddress_1.toString());
|
|
328
|
+
return _this.initMembershipListener();
|
|
329
|
+
}).catch(function (e) {
|
|
330
|
+
_this.logger.warn('ClusterService', "Failed to connect to " + currentAddress_1.toString() + ":", e);
|
|
331
|
+
_this.markAddressAsDown(currentAddress_1);
|
|
332
|
+
return _this.tryConnectingToAddresses(index + 1, remainingAttemptLimit, attemptPeriod, e);
|
|
333
|
+
});
|
|
334
|
+
}
|
|
335
|
+
};
|
|
336
|
+
ClusterService.prototype.handleMember = function (member, eventType) {
|
|
337
|
+
if (eventType === MemberEvent.ADDED) {
|
|
338
|
+
this.logger.info('ClusterService', member.toString() + ' added to cluster');
|
|
339
|
+
this.memberAdded(member);
|
|
340
|
+
}
|
|
341
|
+
else if (eventType === MemberEvent.REMOVED) {
|
|
342
|
+
this.logger.info('ClusterService', member.toString() + ' removed from cluster');
|
|
343
|
+
this.memberRemoved(member);
|
|
344
|
+
}
|
|
345
|
+
this.client.getPartitionService().refresh();
|
|
346
|
+
};
|
|
347
|
+
ClusterService.prototype.handleMemberList = function (members) {
|
|
348
|
+
var prevMembers = this.members;
|
|
349
|
+
this.members = members;
|
|
350
|
+
this.client.getPartitionService().refresh();
|
|
351
|
+
this.logger.info('ClusterService', 'Members received.', this.members);
|
|
352
|
+
var events = this.detectMembershipEvents(prevMembers);
|
|
353
|
+
for (var _i = 0, events_1 = events; _i < events_1.length; _i++) {
|
|
354
|
+
var event = events_1[_i];
|
|
355
|
+
this.fireMembershipEvent(event);
|
|
356
|
+
}
|
|
357
|
+
};
|
|
358
|
+
ClusterService.prototype.detectMembershipEvents = function (prevMembers) {
|
|
359
|
+
var events = [];
|
|
360
|
+
var eventMembers = Array.from(this.members);
|
|
361
|
+
var addedMembers = [];
|
|
362
|
+
var deletedMembers = Array.from(prevMembers);
|
|
363
|
+
for (var _i = 0, _a = this.members; _i < _a.length; _i++) {
|
|
364
|
+
var member = _a[_i];
|
|
365
|
+
var idx = deletedMembers.findIndex(member.equals, member);
|
|
366
|
+
if (idx === -1) {
|
|
367
|
+
addedMembers.push(member);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
deletedMembers.splice(idx, 1);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
// removal events should be added before added events
|
|
374
|
+
for (var _b = 0, deletedMembers_1 = deletedMembers; _b < deletedMembers_1.length; _b++) {
|
|
375
|
+
var member = deletedMembers_1[_b];
|
|
376
|
+
events.push(new MembershipEvent_1.MembershipEvent(member, MemberEvent.REMOVED, eventMembers));
|
|
377
|
+
}
|
|
378
|
+
for (var _c = 0, addedMembers_1 = addedMembers; _c < addedMembers_1.length; _c++) {
|
|
379
|
+
var member = addedMembers_1[_c];
|
|
380
|
+
events.push(new MembershipEvent_1.MembershipEvent(member, MemberEvent.ADDED, eventMembers));
|
|
381
|
+
}
|
|
382
|
+
return events;
|
|
383
|
+
};
|
|
384
|
+
ClusterService.prototype.fireMembershipEvent = function (membershipEvent) {
|
|
385
|
+
this.membershipListeners.forEach(function (membershipListener, registrationId) {
|
|
386
|
+
if (membershipEvent.eventType === MemberEvent.ADDED) {
|
|
387
|
+
if (membershipListener && membershipListener.memberAdded) {
|
|
388
|
+
membershipListener.memberAdded(membershipEvent);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
else if (membershipEvent.eventType === MemberEvent.REMOVED) {
|
|
392
|
+
if (membershipListener && membershipListener.memberRemoved) {
|
|
393
|
+
membershipListener.memberRemoved(membershipEvent);
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
});
|
|
397
|
+
};
|
|
398
|
+
ClusterService.prototype.handleMemberAttributeChange = function (uuid, key, operationType, value) {
|
|
399
|
+
var _this = this;
|
|
400
|
+
this.membershipListeners.forEach(function (membershipListener, registrationId) {
|
|
401
|
+
if (membershipListener && membershipListener.memberAttributeChanged) {
|
|
402
|
+
var member = _this.getMember(uuid);
|
|
403
|
+
var memberAttributeEvent = new MemberAttributeEvent_1.MemberAttributeEvent(member, key, operationType, value);
|
|
404
|
+
membershipListener.memberAttributeChanged(memberAttributeEvent);
|
|
405
|
+
}
|
|
406
|
+
});
|
|
407
|
+
};
|
|
408
|
+
ClusterService.prototype.memberAdded = function (member) {
|
|
409
|
+
this.members.push(member);
|
|
410
|
+
var membershipEvent = new MembershipEvent_1.MembershipEvent(member, MemberEvent.ADDED, this.members);
|
|
411
|
+
this.fireMembershipEvent(membershipEvent);
|
|
412
|
+
};
|
|
413
|
+
ClusterService.prototype.memberRemoved = function (member) {
|
|
414
|
+
var memberIndex = this.members.findIndex(member.equals, member);
|
|
415
|
+
if (memberIndex !== -1) {
|
|
416
|
+
var removedMemberList = this.members.splice(memberIndex, 1);
|
|
417
|
+
assert(removedMemberList.length === 1);
|
|
418
|
+
}
|
|
419
|
+
this.client.getConnectionManager().destroyConnection(member.address);
|
|
420
|
+
var membershipEvent = new MembershipEvent_1.MembershipEvent(member, MemberEvent.REMOVED, this.members);
|
|
421
|
+
this.fireMembershipEvent(membershipEvent);
|
|
422
|
+
};
|
|
423
|
+
ClusterService.prototype.startReconnectionTask = function () {
|
|
424
|
+
var _this = this;
|
|
425
|
+
// Periodically attempt to reconnect to previously failed addresses
|
|
426
|
+
this.reconnectionTask = setInterval(function () {
|
|
427
|
+
_this.attemptReconnectionToFailedNodes();
|
|
428
|
+
}, this.reconnectionInterval);
|
|
429
|
+
};
|
|
430
|
+
ClusterService.prototype.attemptReconnectionToFailedNodes = function () {
|
|
431
|
+
var _this = this;
|
|
432
|
+
if (this.failoverInProgress || !this.ownerConnection) {
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
var now = Date.now();
|
|
436
|
+
var addressesToReconnect = [];
|
|
437
|
+
var totalDownAddresses = this.downAddresses.size;
|
|
438
|
+
// If we have no down addresses, we can increase the reconnection interval
|
|
439
|
+
if (totalDownAddresses === 0) {
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
// Find addresses that are no longer blocked
|
|
443
|
+
this.downAddresses.forEach(function (downTime, addressStr) {
|
|
444
|
+
var timeSinceDown = now - downTime;
|
|
445
|
+
if (timeSinceDown > _this.addressBlockDuration) {
|
|
446
|
+
// Parse the address string back to Address object
|
|
447
|
+
try {
|
|
448
|
+
var _a = addressStr.split(':'), host = _a[0], portStr = _a[1];
|
|
449
|
+
var port = parseInt(portStr, 10);
|
|
450
|
+
if (host && !isNaN(port)) {
|
|
451
|
+
var address = new Address(host, port);
|
|
452
|
+
addressesToReconnect.push(address);
|
|
453
|
+
}
|
|
454
|
+
}
|
|
455
|
+
catch (error) {
|
|
456
|
+
_this.logger.warn('ClusterService', "Failed to parse address " + addressStr + " for reconnection:", error);
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
});
|
|
460
|
+
if (addressesToReconnect.length > 0) {
|
|
461
|
+
this.logger.info('ClusterService', "Attempting to reconnect to " + addressesToReconnect.length + " previously failed nodes: " + addressesToReconnect.map(function (addr) { return addr.toString(); }).join(', '));
|
|
462
|
+
// Attempt to establish connections to each unblocked address
|
|
463
|
+
addressesToReconnect.forEach(function (address) {
|
|
464
|
+
_this.attemptReconnectionToAddress(address);
|
|
465
|
+
});
|
|
466
|
+
}
|
|
467
|
+
else if (totalDownAddresses > 0) {
|
|
468
|
+
// Log remaining blocked addresses for debugging
|
|
469
|
+
var remainingBlocked = Array.from(this.downAddresses.keys()).map(function (addr) {
|
|
470
|
+
var downTime = _this.downAddresses.get(addr);
|
|
471
|
+
var timeSinceDown = now - downTime;
|
|
472
|
+
var remainingTime = Math.max(0, _this.addressBlockDuration - timeSinceDown);
|
|
473
|
+
return addr + " (" + Math.ceil(remainingTime / 1000) + "s remaining)";
|
|
474
|
+
});
|
|
475
|
+
this.logger.debug('ClusterService', "Still waiting for " + totalDownAddresses + " addresses to unblock: " + remainingBlocked.join(', '));
|
|
476
|
+
}
|
|
477
|
+
};
|
|
478
|
+
/**
|
|
479
|
+
* Attempts to establish a connection to a specific address
|
|
480
|
+
* @param address The address to reconnect to
|
|
481
|
+
*/
|
|
482
|
+
ClusterService.prototype.attemptReconnectionToAddress = function (address) {
|
|
483
|
+
var _this = this;
|
|
484
|
+
var addressStr = address.toString();
|
|
485
|
+
// Remove from down addresses to allow connection attempt
|
|
486
|
+
this.downAddresses.delete(addressStr);
|
|
487
|
+
this.logger.debug('ClusterService', "Attempting reconnection to " + addressStr);
|
|
488
|
+
// Attempt to establish connection (not as owner, just as regular member connection)
|
|
489
|
+
this.client.getConnectionManager().getOrConnect(address, false)
|
|
490
|
+
.then(function (connection) {
|
|
491
|
+
_this.logger.info('ClusterService', "Successfully reconnected to " + addressStr);
|
|
492
|
+
// Check if this reconnected node should become the new owner
|
|
493
|
+
_this.evaluateOwnershipChange(address, connection);
|
|
494
|
+
// Trigger partition service refresh to update routing information
|
|
495
|
+
_this.client.getPartitionService().refresh();
|
|
496
|
+
}).catch(function (error) {
|
|
497
|
+
_this.logger.warn('ClusterService', "Reconnection attempt to " + addressStr + " failed:", error);
|
|
498
|
+
// Mark the address as down again, but with a shorter block duration for reconnection attempts
|
|
499
|
+
var shorterBlockDuration = Math.min(_this.addressBlockDuration / 2, 15000); // Max 15 seconds
|
|
500
|
+
_this.markAddressAsDownWithDuration(address, shorterBlockDuration);
|
|
501
|
+
});
|
|
502
|
+
};
|
|
503
|
+
/**
|
|
504
|
+
* Evaluates whether we should switch ownership to a reconnected node
|
|
505
|
+
* @param address The address of the reconnected node
|
|
506
|
+
* @param connection The connection to the reconnected node
|
|
507
|
+
*/
|
|
508
|
+
ClusterService.prototype.evaluateOwnershipChange = function (address, connection) {
|
|
509
|
+
// If we don't have an owner connection, this reconnected node becomes the owner
|
|
510
|
+
if (!this.ownerConnection) {
|
|
511
|
+
this.logger.info('ClusterService', "Promoting reconnected node " + address.toString() + " to owner status");
|
|
512
|
+
this.promoteToOwner(connection, address);
|
|
513
|
+
return;
|
|
514
|
+
}
|
|
515
|
+
// If our current owner connection is having issues, consider switching
|
|
516
|
+
if (this.ownerConnection && !this.ownerConnection.isAlive()) {
|
|
517
|
+
this.logger.info('ClusterService', "Current owner is unhealthy, switching to reconnected node " + address.toString());
|
|
518
|
+
this.promoteToOwner(connection, address);
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
// Check if this reconnected node was previously our owner (by checking if it's in our known addresses)
|
|
522
|
+
var wasPreviousOwner = this.knownAddresses.some(function (knownAddr) { return knownAddr.equals(address); });
|
|
523
|
+
if (wasPreviousOwner) {
|
|
524
|
+
this.logger.debug('ClusterService', "Reconnected node " + address.toString() + " was previously known, monitoring for ownership opportunity");
|
|
525
|
+
// Don't switch ownership immediately, but keep the connection for potential future use
|
|
526
|
+
}
|
|
527
|
+
};
|
|
528
|
+
/**
|
|
529
|
+
* Promotes a connection to owner status
|
|
530
|
+
* @param connection The connection to promote
|
|
531
|
+
* @param address The address of the promoted connection
|
|
532
|
+
*/
|
|
533
|
+
ClusterService.prototype.promoteToOwner = function (connection, address) {
|
|
534
|
+
try {
|
|
535
|
+
// Close the old owner connection if it exists
|
|
536
|
+
if (this.ownerConnection && this.ownerConnection !== connection) {
|
|
537
|
+
this.logger.info('ClusterService', "Closing previous owner connection to " + this.ownerConnection.getAddress().toString());
|
|
538
|
+
this.client.getConnectionManager().destroyConnection(this.ownerConnection.getAddress());
|
|
539
|
+
}
|
|
540
|
+
// Set the new owner connection
|
|
541
|
+
connection.setAuthenticatedAsOwner(true);
|
|
542
|
+
this.ownerConnection = connection;
|
|
543
|
+
this.logger.info('ClusterService', "Successfully promoted " + address.toString() + " to owner status");
|
|
544
|
+
// Refresh partition information with the new owner
|
|
545
|
+
this.client.getPartitionService().refresh();
|
|
546
|
+
}
|
|
547
|
+
catch (error) {
|
|
548
|
+
this.logger.error('ClusterService', "Failed to promote " + address.toString() + " to owner:", error);
|
|
549
|
+
// If promotion fails, mark the address as down again
|
|
550
|
+
this.markAddressAsDown(address);
|
|
551
|
+
}
|
|
552
|
+
};
|
|
553
|
+
/**
|
|
554
|
+
* Marks an address as down with a custom block duration
|
|
555
|
+
* @param address The address to mark as down
|
|
556
|
+
* @param blockDuration The duration to block the address (in milliseconds)
|
|
557
|
+
*/
|
|
558
|
+
ClusterService.prototype.markAddressAsDownWithDuration = function (address, blockDuration) {
|
|
559
|
+
var _this = this;
|
|
560
|
+
var addressStr = address.toString();
|
|
561
|
+
var now = Date.now();
|
|
562
|
+
this.downAddresses.set(addressStr, now);
|
|
563
|
+
this.logger.warn('ClusterService', "Marked address " + addressStr + " as down, will be blocked for " + blockDuration + "ms");
|
|
564
|
+
// Schedule cleanup of this address after block duration
|
|
565
|
+
setTimeout(function () {
|
|
566
|
+
if (_this.downAddresses.has(addressStr)) {
|
|
567
|
+
_this.logger.info('ClusterService', "Unblocking address " + addressStr + " after block duration");
|
|
568
|
+
_this.downAddresses.delete(addressStr);
|
|
569
|
+
}
|
|
570
|
+
}, blockDuration);
|
|
571
|
+
};
|
|
572
|
+
ClusterService.prototype.shutdown = function () {
|
|
573
|
+
if (this.reconnectionTask) {
|
|
574
|
+
clearInterval(this.reconnectionTask);
|
|
575
|
+
this.reconnectionTask = null;
|
|
576
|
+
}
|
|
577
|
+
this.downAddresses.clear();
|
|
578
|
+
};
|
|
579
|
+
return ClusterService;
|
|
580
|
+
}());
|
|
581
|
+
exports.ClusterService = ClusterService;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/// <reference types="bluebird" />
|
|
2
|
+
import * as Promise from 'bluebird';
|
|
3
|
+
import HazelcastClient from '../HazelcastClient';
|
|
4
|
+
import { ClientConnection } from './ClientConnection';
|
|
5
|
+
import ClientMessage = require('../ClientMessage');
|
|
6
|
+
export declare class ConnectionAuthenticator {
|
|
7
|
+
private connection;
|
|
8
|
+
private client;
|
|
9
|
+
private clusterService;
|
|
10
|
+
private logger;
|
|
11
|
+
constructor(connection: ClientConnection, client: HazelcastClient);
|
|
12
|
+
authenticate(asOwner: boolean): Promise<void>;
|
|
13
|
+
createCredentials(asOwner: boolean): ClientMessage;
|
|
14
|
+
}
|