Releases: msemys/esjc
Releases · msemys/esjc
v2.6.0
v2.5.0
- [#65] fix:
CatchUpSubscriptionreconnect (as suggested in #65 (comment)) - added:
CatchUpSubscriptionSettings.resubscribeOnReconnectsetting, that allows to enable/disable catchup subscription automatic resubscribe-on-reconnect (by default - enabled) - added:
CatchUpSubscription.awaitStopped(duration)andCatchUpSubscription.awaitStopped(time, unit)methods that waits until the subscription stops or the specified waiting time elapses - bumped netty version to 4.1.73.Final
- bumped gson version to 2.8.9
- bumped slf4j api version to 1.7.35
v2.4.0
v2.3.0
- fix: use concurrent structures in
OperationManager, otherwise some retry operations could be potentially lost - [#64] fix: concurrency in
SubscriptionManagerandIdentificationHandler - [#62] fix: recreate socket on each
SingleEndpointDiscover.discover()call (to resolve correct IP address, when hostname IP address is changed) - [#59] added: reconnect instead of throwing
NullPointerException("connection is null")when connection is null - added: allow to set custom endpoint discoverer via
EventStoreBuilder.newBuilder().endpointDiscoverer(...)andEventStoreBuilder.newBuilder().endpointDiscovererFactory(...) - added: avoid dns lookup in
SingleEndpointDiscoverwhen address is a valid IP string (IPv4 or IPv6) - bumped netty version to 4.1.52.Final
v2.2.0
- [#53] fix: when recovering catch-up subscription (onReconnect) wait for drop-event is processed and current subscription is stopped, before resubscribing
- [#58] fix: use
ConcurrentLinkedQueuefor waiting operations - fix: always enqueue the operation and then send to server (sending directly can cause occasional out of order operations)
- fix: incorrect order of arguments passed to
Positionconstructor - bumped netty version to 4.1.48.Final
- bumped gson version to 2.8.6
- bumped slf4j api version to 1.7.30
v2.1.0
- [#33] added retry count field to event in persistent subscription listener:
PersistentSubscriptionListener.onEvent(PersistentSubscription, ResolvedEvent)->PersistentSubscriptionListener.onEvent(PersistentSubscription, RetryableResolvedEvent) - [#40] added TLS certificate file validation (
EventStoreBuilder.useSslConnection(new File("domain.csr"))) - [#42] fixed missing node preference when building eventstore from settings
- [#43] fixed multiple reconnects
- [#44] fixed reconnection issue - on previous esjc versions when driver encounters channel failure (e.g: connection reset by server) it disconnects without triggering reconnection. Now it logs an error and reconnects. If for some reason, you need the previous behavior - use
EventStoreBuilder.disconnectOnTcpChannelError(true) - fixed operations timeout check and retry on reconnect
EventStore.iterateXXXXandEventStore.streamXXXXmethods throws specific exceptionsStreamNotFoundExceptionorStreamDeletedException(wasIllegalStateException)- changed subscription drop due overflow reason
SubscriptionDropReason.UserInitiated->SubscriptionDropReason.ProcessingQueueOverflow - added option to prefer master, slave or random node in cluster endpoint discoverer (
cluster.preferRandomNode(true)->cluster.nodePreference(NodePreference.Random)) - added
eventNumberrange check inEventStore.readStreamEventsBackwardmethod - added
EventStore.subscribeToPersistent(stream, groupName, listener, autoAck)andEventStore.subscribeToPersistent(stream, groupName, listener, userCredentials, autoAck)overloaded methods - added
EventStoreBuilder.defaultExecutor()method - bumped netty version to 4.1.34.Final
- bumped gson version to 2.8.5
- bumped slf4j api version to 1.7.26
Many thanks to all committers!
v2.0.0
- [#24] added 64bit event numbers support
- [#22] added
current_versiontoWriteEventsCompletedmessage and exposedstream,expectedVersionandcurrentVersionfields inWrongExpectedVersionExceptionclass - added
EventStoreBuilder.connectionName(...)method that allows to set client connection name - added
SubscriptionBufferOverflowException- more specific exception for subscription drop cause when 'client buffer too big' - removed expected version value wrapper
ExpectedVersion.of(...)- now simply use expected version number - renamed class
OperationTimedOutException->OperationTimeoutException - renamed class
HttpOperationTimedOutException->HttpOperationTimeoutException - changed
enum SystemEventType->class SystemEventTypeswith string constants - bumped netty version to 4.1.13.Final
- bumped gson version to 2.8.1
v1.8.1
v1.8.0
- [#19] fixed handling of multiple heartbeats
- [#20] fixed timeouts not triggering when there is no server response
- [#21] added cause to
ConnectionClosedException - [#15] added
EventStore.shutdown()method, that disconnects client from server and initiates executor services shutdown java.time.Instantbased timeout checks replaced withSystem.nanoTime()diff check (based on pull request #20)- added projections management support (use
ProjectionManagerBuilderto buildProjectionManagerinstance) - added users management support (use
UserManagerBuilderto buildUserManagerinstance) - added cluster node option
ClusterNodeSettings.preferRandomNodeto prefer a randomly selected node instead of always preferring the master node - added
EventStore.tryAppendToStreammethod (conditional-append), that returns the status of operation instead of throwing an exception in cases of stream version mismatch or stream was deleted - added
PersistentSubscription.acknowledge(UUID[])method, that allows persistent subscription to acknowledge messages by event ids - bumped netty version to 4.0.46.Final
- bumped slf4j api version to 1.7.25
v1.7.0
- [#13] fixed error handling when an error occurs while reading/processing tcp package - in such cases, the client will be disconnected
- [#12] optimized and simplified stream iterators implementation
- added java8 stream api support for reading events from eventstore (
EventStore.streamXXXXmethods) - added
EventStoreBuilder.userCredentials(UserCredentials userCredentials)overloaded method - improved client event notification
- exposed
ExpectedVersionconstants (NO_STREAM,ANY,STREAM_EXISTS) and removed corresponding static methods:ExpectedVersion.noStream()->ExpectedVersion.NO_STREAMExpectedVersion.any()->ExpectedVersion.ANYExpectedVersion.streamExists()->ExpectedVersion.STREAM_EXISTS
- removed usage of
java.util.Optionalfor fields and parameters - bumped slf4j api version to 1.7.22