Releases: msemys/esjc
Releases · msemys/esjc
v2.6.0
v2.5.0
- [#65] fix:
CatchUpSubscription
reconnect (as suggested in #65 (comment)) - added:
CatchUpSubscriptionSettings.resubscribeOnReconnect
setting, 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
SubscriptionManager
andIdentificationHandler
- [#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
SingleEndpointDiscover
when 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
ConcurrentLinkedQueue
for 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
Position
constructor - 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.iterateXXXX
andEventStore.streamXXXX
methods throws specific exceptionsStreamNotFoundException
orStreamDeletedException
(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
eventNumber
range check inEventStore.readStreamEventsBackward
method - 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_version
toWriteEventsCompleted
message and exposedstream
,expectedVersion
andcurrentVersion
fields inWrongExpectedVersionException
class - 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 SystemEventTypes
with 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.Instant
based timeout checks replaced withSystem.nanoTime()
diff check (based on pull request #20)- added projections management support (use
ProjectionManagerBuilder
to buildProjectionManager
instance) - added users management support (use
UserManagerBuilder
to buildUserManager
instance) - added cluster node option
ClusterNodeSettings.preferRandomNode
to prefer a randomly selected node instead of always preferring the master node - added
EventStore.tryAppendToStream
method (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.streamXXXX
methods) - added
EventStoreBuilder.userCredentials(UserCredentials userCredentials)
overloaded method - improved client event notification
- exposed
ExpectedVersion
constants (NO_STREAM
,ANY
,STREAM_EXISTS
) and removed corresponding static methods:ExpectedVersion.noStream()
->ExpectedVersion.NO_STREAM
ExpectedVersion.any()
->ExpectedVersion.ANY
ExpectedVersion.streamExists()
->ExpectedVersion.STREAM_EXISTS
- removed usage of
java.util.Optional
for fields and parameters - bumped slf4j api version to 1.7.22